diff --git a/aleksis/apps/alsijil/forms.py b/aleksis/apps/alsijil/forms.py index 84688f87ac580588b2c02cbdeb84bb00ee154e51..c66564465a1b39299f24f39392a87d7c7baed6c9 100644 --- a/aleksis/apps/alsijil/forms.py +++ b/aleksis/apps/alsijil/forms.py @@ -46,6 +46,11 @@ class PersonalNoteForm(forms.ModelForm): if self.instance and getattr(self.instance, "person", None): self.fields["person_name"].initial = str(self.instance.person) + self.fields["extra_marks"].choices = [(e.id, str(e)) for e in ExtraMark.all] + self.fields["excuse_type"].choices = [(None, "-----")] + [ + (e.id, str(e)) for e in ExcuseType.all + ] + class SelectForm(forms.Form): layout = Layout(Row("group", "teacher")) @@ -164,7 +169,9 @@ class RegisterAbsenceForm(forms.Form): ) ) ) - self.fields["person"].queryset = Person.objects.filter(pk__in=list(persons_qs.values_list("pk", flat=True))) + self.fields["person"].queryset = Person.objects.filter( + pk__in=list(persons_qs.values_list("pk", flat=True)) + ) self.fields["from_period"].choices = period_choices self.fields["to_period"].choices = period_choices diff --git a/aleksis/apps/alsijil/models.py b/aleksis/apps/alsijil/models.py index fe9d60e42e882fe418be6f263a3bc01e25663308..91644e9d9a6d22951bec55f21aa8e75589aca091 100644 --- a/aleksis/apps/alsijil/models.py +++ b/aleksis/apps/alsijil/models.py @@ -1,9 +1,9 @@ -from cache_memoize import cache_memoize from django.db import models from django.utils.decorators import classproperty from django.utils.formats import date_format from django.utils.translation import gettext_lazy as _ +from cache_memoize import cache_memoize from calendarweek import CalendarWeek from aleksis.apps.alsijil.managers import PersonalNoteManager @@ -36,6 +36,12 @@ class ExcuseType(ExtensibleModel): def count_label(self): return f"{self.short_name}_count" + @classproperty + @cache_memoize(3600) + def all(cls): + qs = cls.objects.all() + return qs + class Meta: ordering = ["name"] verbose_name = _("Excuse type")