From f3cc545ca40c20855c97069d5e2d08b1d1fa4215 Mon Sep 17 00:00:00 2001 From: Jonathan Weth <git@jonathanweth.de> Date: Sat, 20 Jun 2020 18:22:29 +0200 Subject: [PATCH] Convert pks of lesson periods to list to simplify query Reason: A too complex query can cause database problems. --- aleksis/apps/alsijil/views.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/aleksis/apps/alsijil/views.py b/aleksis/apps/alsijil/views.py index d5f24f9a7..7f542e409 100644 --- a/aleksis/apps/alsijil/views.py +++ b/aleksis/apps/alsijil/views.py @@ -196,7 +196,7 @@ def week_view( if lesson_periods: # Aggregate all personal notes for this group and week - lesson_periods_pk = lesson_periods.values_list("pk", flat=True) + lesson_periods_pk = list(lesson_periods.values_list("pk", flat=True)) persons = Person.objects.filter(is_active=True) @@ -211,7 +211,7 @@ def week_view( absences_count=Count( "personal_notes", filter=Q( - personal_notes__lesson_period__in=lesson_periods, + personal_notes__lesson_period__in=lesson_periods_pk, personal_notes__week=wanted_week.week, personal_notes__absent=True, ), @@ -220,7 +220,7 @@ def week_view( unexcused_count=Count( "personal_notes", filter=Q( - personal_notes__lesson_period__in=lesson_periods, + personal_notes__lesson_period__in=lesson_periods_pk, personal_notes__week=wanted_week.week, personal_notes__absent=True, personal_notes__excused=False, @@ -230,7 +230,7 @@ def week_view( tardiness_sum=Subquery( Person.objects.filter( pk=OuterRef("pk"), - personal_notes__lesson_period__in=lesson_periods, + personal_notes__lesson_period__in=lesson_periods_pk, personal_notes__week=wanted_week.week, ) .distinct() -- GitLab