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 ...@@ -10,10 +10,10 @@ from .models import Room
class SelectForm(forms.Form): class SelectForm(forms.Form):
group = forms.ModelChoiceField( group = forms.ModelChoiceField(
queryset=Group.objects.annotate(lessons_count=Count('lessons')).filter(lessons_count__gt=0), queryset=Group.objects.annotate(lessons_count=Count('lessons')).filter(lessons_count__gt=0),
label=_('Group')) label=_('Group'), required=False)
teacher = forms.ModelChoiceField( teacher = forms.ModelChoiceField(
queryset=Person.objects.annotate(lessons_count=Count('lessons')).filter(lessons_count__gt=0), queryset=Person.objects.annotate(lessons_count=Count('lessons')).filter(lessons_count__gt=0),
label=_('Teacher')) label=_('Teacher'), required=False)
room = forms.ModelChoiceField( room = forms.ModelChoiceField(
queryset=Room.objects.annotate(lessons_count=Count('lesson_periods')).filter(lessons_count__gt=0), 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): ...@@ -101,7 +101,7 @@ class LessonPeriod(models.Model):
lesson = models.ForeignKey('Lesson', models.CASCADE) lesson = models.ForeignKey('Lesson', models.CASCADE)
period = models.ForeignKey('TimePeriod', 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: def get_substitution(self, week: Optional[int] = None) -> LessonSubstitution:
wanted_week = week or current_week() wanted_week = week or current_week()
......
...@@ -20,17 +20,17 @@ from .util import current_week ...@@ -20,17 +20,17 @@ from .util import current_week
def timetable(request: HttpRequest) -> HttpResponse: def timetable(request: HttpRequest) -> HttpResponse:
context = {} context = {}
if request.GET: lesson_periods = LessonPeriod.objects.all()
lesson_periods = LessonPeriod.objects.all()
if request.GET:
# Incrementally filter lesson periods by GET parameters # 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_periods = lesson_periods.filter(
lesson__groups__pk=int(request.GET['group'])) 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_periods = lesson_periods.filter(
lesson__teachers__pk=int(request.GET['teacher'])) 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( lesson_periods = lesson_periods.filter(
room__pk=int(request.GET['room'])) room__pk=int(request.GET['room']))
else: else:
...@@ -48,7 +48,7 @@ def timetable(request: HttpRequest) -> HttpResponse: ...@@ -48,7 +48,7 @@ def timetable(request: HttpRequest) -> HttpResponse:
{})[lesson_period.period.period] = lesson_period {})[lesson_period.period.period] = lesson_period
# Determine overall first and last day and period # Determine overall first and last day and period
min_max = TimePeriod.objects..aggregate( min_max = TimePeriod.objects.aggregate(
Min('period'), Max('period'), Min('period'), Max('period'),
Min('weekday'), Max('weekday')) 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