diff --git a/aleksis/apps/chronos/models.py b/aleksis/apps/chronos/models.py index dcea65eadacf0cf98f53af433e6910a412a51126..468f6678ac705256ca990722bb2e241c95aa6483 100644 --- a/aleksis/apps/chronos/models.py +++ b/aleksis/apps/chronos/models.py @@ -440,9 +440,6 @@ class LessonEvent(CalendarEvent): own = params.get("own", False) return_all = params.get("all", False) - if prefetch_absences: - objs = objs.prefetch_related("teachers__kolego_absences") - if not_amended: q = q & LessonEventQuerySet.not_amended_q() @@ -511,14 +508,18 @@ class LessonEvent(CalendarEvent): elif request: q = q & LessonEventQuerySet.for_person_q(request.user.person) - + + prefetch_fields = ["groups", "teachers", "rooms", "groups__members"] + if prefetch_absences: + prefetch_fields.append("teachers__kolego_absences") + objs = super().get_objects( request, params, start_qs=cls.objects.not_instance_of(SupervisionEvent), additional_filter=q, select_related=["subject", "course"], - prefetch_related=["groups", "teachers", "rooms", "groups__members"], + prefetch_related=prefetch_fields, **kwargs, ) return objs