From 090fab85b29bc8c37c77264e661a9df2bd5181b3 Mon Sep 17 00:00:00 2001 From: Dominik George <dominik.george@teckids.org> Date: Fri, 23 Aug 2019 19:24:04 +0200 Subject: [PATCH] Fix some errors from implementing #4. --- biscuit/apps/chronos/forms.py | 6 +++--- biscuit/apps/chronos/models.py | 2 +- biscuit/apps/chronos/views.py | 12 ++++++------ 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/biscuit/apps/chronos/forms.py b/biscuit/apps/chronos/forms.py index 718bfe13..a242f060 100644 --- a/biscuit/apps/chronos/forms.py +++ b/biscuit/apps/chronos/forms.py @@ -10,10 +10,10 @@ from .models import Room class SelectForm(forms.Form): group = forms.ModelChoiceField( queryset=Group.objects.annotate(lessons_count=Count('lessons')).filter(lessons_count__gt=0), - label=_('Group')) + label=_('Group'), required=False) teacher = forms.ModelChoiceField( queryset=Person.objects.annotate(lessons_count=Count('lessons')).filter(lessons_count__gt=0), - label=_('Teacher')) + label=_('Teacher'), required=False) room = forms.ModelChoiceField( queryset=Room.objects.annotate(lessons_count=Count('lesson_periods')).filter(lessons_count__gt=0), - label=_('Room')) + label=_('Room'), required=False) diff --git a/biscuit/apps/chronos/models.py b/biscuit/apps/chronos/models.py index a6cb52f1..16e23520 100644 --- a/biscuit/apps/chronos/models.py +++ b/biscuit/apps/chronos/models.py @@ -101,7 +101,7 @@ class LessonPeriod(models.Model): lesson = models.ForeignKey('Lesson', models.CASCADE) period = models.ForeignKey('TimePeriod', models.CASCADE) - room = models.ForeignKey('Room', models.CASCADE, null=True) + room = models.ForeignKey('Room', models.CASCADE, null=True, related_name='lesson_periods') def get_substitution(self, week: Optional[int] = None) -> LessonSubstitution: wanted_week = week or current_week() diff --git a/biscuit/apps/chronos/views.py b/biscuit/apps/chronos/views.py index d7c22fcc..a146181f 100644 --- a/biscuit/apps/chronos/views.py +++ b/biscuit/apps/chronos/views.py @@ -20,17 +20,17 @@ from .util import current_week def timetable(request: HttpRequest) -> HttpResponse: context = {} - if request.GET: - lesson_periods = LessonPeriod.objects.all() + lesson_periods = LessonPeriod.objects.all() + if request.GET: # Incrementally filter lesson periods by GET parameters - if 'group' in request.GET: + if 'group' in request.GET and request.GET['group']: lesson_periods = lesson_periods.filter( lesson__groups__pk=int(request.GET['group'])) - if 'teacher' in request.GET: + if 'teacher' in request.GET and request.GET['teacher']: lesson_periods = lesson_periods.filter( lesson__teachers__pk=int(request.GET['teacher'])) - if 'room' in request.GET: + if 'room' in request.GET and request.GET['room']: lesson_periods = lesson_periods.filter( room__pk=int(request.GET['room'])) else: @@ -48,7 +48,7 @@ def timetable(request: HttpRequest) -> HttpResponse: {})[lesson_period.period.period] = lesson_period # Determine overall first and last day and period - min_max = TimePeriod.objects..aggregate( + min_max = TimePeriod.objects.aggregate( Min('period'), Max('period'), Min('weekday'), Max('weekday')) -- GitLab