From 654f72cdb2b19732dbbfa32c4756c2725c430dea Mon Sep 17 00:00:00 2001
From: Jonathan Weth <git@jonathanweth.de>
Date: Sun, 23 Jun 2024 17:39:39 +0200
Subject: [PATCH 1/2] Fix for_participant query

---
 aleksis/apps/chronos/managers.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/aleksis/apps/chronos/managers.py b/aleksis/apps/chronos/managers.py
index ce1670f5..2ba38ff0 100644
--- a/aleksis/apps/chronos/managers.py
+++ b/aleksis/apps/chronos/managers.py
@@ -878,7 +878,7 @@ class LessonEventQuerySet(PolymorphicQuerySet):
 
     def for_participant(self, person: Union[int, Person]) -> "LessonEventQuerySet":
         """Get all lesson events the person participates in (including amends)."""
-        amended = self.filter(Q(amended_by__isnull=False) | Q(groups__members=person)).values_list(
+        amended = self.filter(Q(amended_by__isnull=False) & Q(groups__members=person)).values_list(
             "amended_by__pk", flat=True
         )
         return self.filter(Q(groups__members=person) | Q(pk__in=amended)).distinct()
-- 
GitLab


From 075ec9d78946bc74956b2e6b3aed9661e6803202 Mon Sep 17 00:00:00 2001
From: Jonathan Weth <git@jonathanweth.de>
Date: Sun, 23 Jun 2024 17:39:47 +0200
Subject: [PATCH 2/2] Add more prefetching for LessonEvent

---
 aleksis/apps/chronos/models.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/aleksis/apps/chronos/models.py b/aleksis/apps/chronos/models.py
index 9533ce1b..732c95d5 100644
--- a/aleksis/apps/chronos/models.py
+++ b/aleksis/apps/chronos/models.py
@@ -1533,7 +1533,7 @@ class LessonEvent(CalendarEvent):
             .get_objects(request, params)
             .not_instance_of(SupervisionEvent)
             .select_related("subject", "course")
-            .prefetch_related("groups", "teachers", "rooms")
+            .prefetch_related("groups", "teachers", "rooms", "groups__members")
         )
 
         if request and not has_person(request.user):
-- 
GitLab