From 8ae2f7e03d5dfcb5d5f2a7468bf3ba6ce57cd2b8 Mon Sep 17 00:00:00 2001
From: Dominik George <dominik.george@teckids.org>
Date: Thu, 18 Jul 2019 00:18:58 +0200
Subject: [PATCH] Add selected filters to view.

---
 .../chronos/templates/chronos/tt_week.html    |  4 ++++
 biscuit/apps/chronos/views.py                 | 21 ++++++++++++++-----
 2 files changed, 20 insertions(+), 5 deletions(-)

diff --git a/biscuit/apps/chronos/templates/chronos/tt_week.html b/biscuit/apps/chronos/templates/chronos/tt_week.html
index 17a92d5d..6bc25000 100644
--- a/biscuit/apps/chronos/templates/chronos/tt_week.html
+++ b/biscuit/apps/chronos/templates/chronos/tt_week.html
@@ -5,6 +5,10 @@
 {% block page_title %}Timetable{% endblock %}
 
 {% block content %}
+ <p>
+  {{ filter_descs }}
+ </p>
+
  {% for weekday, lesson_periods_day in lesson_periods.items %}
   {% include "chronos/tt_day.html" with lesson_periods=lesson_periods_day %}
  {% endfor %}
diff --git a/biscuit/apps/chronos/views.py b/biscuit/apps/chronos/views.py
index c9764eb0..e52840d8 100644
--- a/biscuit/apps/chronos/views.py
+++ b/biscuit/apps/chronos/views.py
@@ -2,8 +2,11 @@ from collections import OrderedDict
 
 from django.contrib.auth.decorators import login_required
 from django.shortcuts import render
+from django.utils.translation import gettext_lazy as _
 
+from biscuit.apps.cambro.models import Room
 from biscuit.core.decorators import admin_required
+from biscuit.core.models import Group, Person
 
 from .models import LessonPeriod
 
@@ -14,22 +17,30 @@ def timetable(request):
     context = {}
 
     lesson_periods = LessonPeriod.objects.all()
+    filter_descs = []
 
     if 'group' in request.GET:
         lesson_periods = lesson_periods.filter(
-            lesson__groups__pk__contains=int(request.GET('group')))
+            lesson__groups__pk__contains=int(request.GET['group']))
+        filter_descs.append(_('Group: %s') % Group.objects.get(
+            pk=int(request.GET['group'])).name)
     if 'teacher' in request.GET:
         lesson_periods = lesson_periods.filter(
-            lesson__teachers__pk__contains=int(request.GET('teacher')))
+            lesson__teachers__pk__contains=int(request.GET['teacher']))
+        filter_descs.append(_('Teacher: %s') % Person.objects.get(
+            pk=int(request.GET['teacher'])).name)
     if 'room' in request.GET:
         lesson_periods = lesson_periods.filter(
-            room__pk=int(request.GET('room')))
+            room__pk=int(request.GET['room']))
+        filter_descs.append(_('Room: %s') % Room.objects.get(
+            pk=int(request.GET['room'])).name)
 
     per_day = {}
     for lesson_period in lesson_periods:
-        for period in lesson_period.periods.all():
-            per_day.setdefault(period.weekday, []).append(lesson_period)
+        per_day.setdefault(lesson_period.period.weekday,
+                           []).append(lesson_period)
 
     context['lesson_periods'] = OrderedDict(sorted(per_day.items()))
+    context['filter_descs'] = ', '.join(filter_descs)
 
     return render(request, 'chronos/tt_week.html', context)
-- 
GitLab