Skip to content
Snippets Groups Projects
Verified Commit eb2f42e7 authored by Jonathan Weth's avatar Jonathan Weth :keyboard:
Browse files

Prefetch form select data

parent cbe2050b
No related branches found
No related tags found
1 merge request!90Performance optimizations
......@@ -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
......
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")
......
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