diff --git a/biscuit/apps/chronos/templates/chronos/tt_week.html b/biscuit/apps/chronos/templates/chronos/tt_week.html index 17a92d5d3c531989b8e1ead20bb7861f475fafe6..6bc250004c573ec620367e64fb2e4a39e57d2382 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 c9764eb037c22f01e635661807ed7aafc167d419..e52840d80b8bfb902c9d584c1dc5737f32d0fc43 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)