From b7dd8120e6b00e9da137abc7bcdc96ef7684ba33 Mon Sep 17 00:00:00 2001
From: Jonathan Weth <git@jonathanweth.de>
Date: Wed, 5 Jun 2024 19:37:25 +0200
Subject: [PATCH] Prefetch related data for lesson events

---
 aleksis/apps/chronos/models.py | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/aleksis/apps/chronos/models.py b/aleksis/apps/chronos/models.py
index 9ef26048..9533ce1b 100644
--- a/aleksis/apps/chronos/models.py
+++ b/aleksis/apps/chronos/models.py
@@ -1528,7 +1528,13 @@ class LessonEvent(CalendarEvent):
         cls, request: HttpRequest | None = None, params: dict[str, any] | None = None
     ) -> Iterable:
         """Return all objects that should be included in the calendar."""
-        objs = super().get_objects(request, params).not_instance_of(SupervisionEvent)
+        objs = (
+            super()
+            .get_objects(request, params)
+            .not_instance_of(SupervisionEvent)
+            .select_related("subject", "course")
+            .prefetch_related("groups", "teachers", "rooms")
+        )
 
         if request and not has_person(request.user):
             raise PermissionDenied()
-- 
GitLab