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