Skip to content
Snippets Groups Projects
Commit 090fab85 authored by Nik | Klampfradler's avatar Nik | Klampfradler
Browse files

Fix some errors from implementing #4.

parent 13d6472d
No related branches found
No related tags found
No related merge requests found
......@@ -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)
......@@ -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()
......
......@@ -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'))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment