From a5044404a9fcfb3434a3790ff5f5e534a842a785 Mon Sep 17 00:00:00 2001
From: Dominik George <nik@naturalnet.de>
Date: Fri, 30 Aug 2019 22:21:48 +0200
Subject: [PATCH] Sort lessons in week view. Advances #8.

---
 biscuit/apps/alsijil/views.py | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/biscuit/apps/alsijil/views.py b/biscuit/apps/alsijil/views.py
index fe0208a15..3bc3c5532 100644
--- a/biscuit/apps/alsijil/views.py
+++ b/biscuit/apps/alsijil/views.py
@@ -1,3 +1,4 @@
+from collections import OrderedDict
 from typing import Optional
 
 from django.contrib.auth.decorators import login_required
@@ -6,7 +7,7 @@ from django.http import HttpRequest, HttpResponse
 from django.shortcuts import render
 from django.utils.translation import ugettext as _
 
-from biscuit.apps.chronos.models import Lesson, LessonPeriod
+from biscuit.apps.chronos.models import Lesson, LessonPeriod, TimePeriod
 from biscuit.apps.chronos.util import current_lesson_periods, current_week, week_days
 from biscuit.core.models import Group
 
@@ -77,12 +78,16 @@ def group_week(request: HttpRequest, week: Optional[int] = None) -> HttpResponse
     else:
         group = None
 
-    periods_by_day = {}
+    periods_by_day_unsorted = {}
     if group:
         for lesson in group.lessons.filter(date_start__lte=week_start, date_end__gte=week_end):
             for lesson_period in lesson.lesson_periods.all():
-                periods_by_day.setdefault(
-                    lesson_period.period.get_weekday_display(), []).append(lesson_period)
+                periods_by_day_unsorted.setdefault(
+                    lesson_period.period.weekday, []).append(lesson_period)
+
+    periods_by_day = OrderedDict()
+    for weekday, periods in sorted(periods_by_day_unsorted.items()):
+        periods_by_day[dict(TimePeriod.WEEKDAY_CHOICES)[weekday]] = sorted(periods, key=lambda p: p.period.period)
 
     context['week'] = wanted_week
     context['group'] = group
-- 
GitLab