From 398c6551edf2655c0f08e48406d21fb6d27e4c3b Mon Sep 17 00:00:00 2001 From: Jonathan Weth <git@jonathanweth.de> Date: Sun, 5 Jul 2020 13:29:07 +0200 Subject: [PATCH] Implement school term and validity range --- aleksis/apps/alsijil/forms.py | 10 +++++++--- aleksis/apps/alsijil/models.py | 4 ++-- aleksis/apps/alsijil/views.py | 2 +- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/aleksis/apps/alsijil/forms.py b/aleksis/apps/alsijil/forms.py index 18c3ba48f..3d7f554eb 100644 --- a/aleksis/apps/alsijil/forms.py +++ b/aleksis/apps/alsijil/forms.py @@ -47,9 +47,7 @@ class SelectForm(forms.Form): layout = Layout(Row("group", "teacher")) group = forms.ModelChoiceField( - queryset=Group.objects.annotate(lessons_count=Count("lessons")).filter( - lessons_count__gt=0 - ), + queryset=None, label=_("Group"), required=False, widget=Select2Widget, @@ -81,6 +79,12 @@ class SelectForm(forms.Form): data["instance"] = instance return data + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.fields["group"].queryset = Group.objects.for_current_school_term_or_all().annotate(lessons_count=Count("lessons")).filter( + lessons_count__gt=0 + ) + PersonalNoteFormSet = forms.modelformset_factory( PersonalNote, form=PersonalNoteForm, max_num=0, extra=0 diff --git a/aleksis/apps/alsijil/models.py b/aleksis/apps/alsijil/models.py index 6dc1edee9..eb1bc4eb6 100644 --- a/aleksis/apps/alsijil/models.py +++ b/aleksis/apps/alsijil/models.py @@ -35,7 +35,7 @@ class PersonalNote(ExtensibleModel): verbose_name_plural = _("Personal notes") unique_together = [["lesson_period", "week", "person"]] ordering = [ - "lesson_period__lesson__date_start", + "lesson_period__lesson__validity__date_start", "week", "lesson_period__period__weekday", "lesson_period__period__period", @@ -63,7 +63,7 @@ class LessonDocumentation(ExtensibleModel): verbose_name_plural = _("Lesson documentations") unique_together = [["lesson_period", "week"]] ordering = [ - "lesson_period__lesson__date_start", + "lesson_period__lesson__validity__date_start", "week", "lesson_period__period__weekday", "lesson_period__period__period", diff --git a/aleksis/apps/alsijil/views.py b/aleksis/apps/alsijil/views.py index 45fffc139..8fa58f62a 100644 --- a/aleksis/apps/alsijil/views.py +++ b/aleksis/apps/alsijil/views.py @@ -276,7 +276,7 @@ def full_register_group(request: HttpRequest, id_: int) -> HttpResponse: for week in weeks: day = week[lesson_period.period.weekday] - if lesson_period.lesson.date_start <= day <= lesson_period.lesson.date_end: + if lesson_period.lesson.validity.date_start <= day <= lesson_period.lesson.validity.date_end: documentations = list( filter( lambda d: d.week == week.week, -- GitLab