Skip to content
Snippets Groups Projects
Verified Commit f3cc545c authored by Jonathan Weth's avatar Jonathan Weth :keyboard:
Browse files

Convert pks of lesson periods to list to simplify query

Reason: A too complex query can cause database problems.
parent fbbb6020
No related branches found
No related tags found
1 merge request!49Resolve "Add rules and permissions"
Pipeline #2770 passed
...@@ -196,7 +196,7 @@ def week_view( ...@@ -196,7 +196,7 @@ def week_view(
if lesson_periods: if lesson_periods:
# Aggregate all personal notes for this group and week # 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) persons = Person.objects.filter(is_active=True)
...@@ -211,7 +211,7 @@ def week_view( ...@@ -211,7 +211,7 @@ def week_view(
absences_count=Count( absences_count=Count(
"personal_notes", "personal_notes",
filter=Q( 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__week=wanted_week.week,
personal_notes__absent=True, personal_notes__absent=True,
), ),
...@@ -220,7 +220,7 @@ def week_view( ...@@ -220,7 +220,7 @@ def week_view(
unexcused_count=Count( unexcused_count=Count(
"personal_notes", "personal_notes",
filter=Q( 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__week=wanted_week.week,
personal_notes__absent=True, personal_notes__absent=True,
personal_notes__excused=False, personal_notes__excused=False,
...@@ -230,7 +230,7 @@ def week_view( ...@@ -230,7 +230,7 @@ def week_view(
tardiness_sum=Subquery( tardiness_sum=Subquery(
Person.objects.filter( Person.objects.filter(
pk=OuterRef("pk"), pk=OuterRef("pk"),
personal_notes__lesson_period__in=lesson_periods, personal_notes__lesson_period__in=lesson_periods_pk,
personal_notes__week=wanted_week.week, personal_notes__week=wanted_week.week,
) )
.distinct() .distinct()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment