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