From 2fc91bab3ac11aaeca0905c7d740ca0a97d09e2f Mon Sep 17 00:00:00 2001
From: Michael Bauer <michael-bauer@posteo.de>
Date: Wed, 30 Oct 2024 12:41:09 +0100
Subject: [PATCH] Properly prefetch and sort documentations

sorting happens in python now - since only this solution is compatible
with prefetch
---
 aleksis/apps/alsijil/tasks.py | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/aleksis/apps/alsijil/tasks.py b/aleksis/apps/alsijil/tasks.py
index da691ac24..8fda7d53a 100644
--- a/aleksis/apps/alsijil/tasks.py
+++ b/aleksis/apps/alsijil/tasks.py
@@ -242,9 +242,12 @@ def generate_full_register_printout(
 
     if include_coursebook:
         context["documentations_by_day"] = {}
-        documentations.prefetch_related("participations", "personal_notes")
-        for day in documentations.dates("datetime_start", "day"):
-            context["documentations_by_day"][day] = documentations.filter(datetime_start__date=day)
+        documentations = documentations.order_by("datetime_start").prefetch_related(
+            prefetch_notable_participations(select_related=["person"]),
+            prefetch_personal_notes("personal_notes", select_related=["person"])
+        )
+        for doc in documentations:
+            context["documentations_by_day"].setdefault(doc.datetime_start.date(), []).append(doc)
 
     # OLD
 
-- 
GitLab