From a32c4988a93118ec9d7ba0b8e3fbbf8a4b78a91f Mon Sep 17 00:00:00 2001 From: Hangzhi Yu <hangzhi@protonmail.com> Date: Tue, 5 Apr 2022 20:02:55 +0200 Subject: [PATCH] Optimize lesson period filtering in _generate_dicts_for_lesson_periods --- aleksis/apps/alsijil/util/alsijil_helpers.py | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/aleksis/apps/alsijil/util/alsijil_helpers.py b/aleksis/apps/alsijil/util/alsijil_helpers.py index 0274100f0..8e203e8f6 100644 --- a/aleksis/apps/alsijil/util/alsijil_helpers.py +++ b/aleksis/apps/alsijil/util/alsijil_helpers.py @@ -193,14 +193,11 @@ def _generate_dicts_for_lesson_periods( "alsijil__inherit_privileges_from_parent_group" ] for lesson_period in lesson_periods: - parent_group_owned_by_person = ( - filter_dict.get("person") - .owner_of.intersection( - Group.objects.filter( - child_groups__in=Group.objects.filter(lessons__lesson_periods=lesson_period) - ) - ) - .exists() + parent_group_owned_by_person = inherit_privileges_preference and ( + Group.objects.filter( + child_groups__in=Group.objects.filter(lessons__lesson_periods=lesson_period), + owners=filter_dict.get("person"), + ).exists() ) for week in weeks: day = week[lesson_period.period.weekday] @@ -226,7 +223,7 @@ def _generate_dicts_for_lesson_periods( if filter_dict.get("person") and ( filter_dict.get("person") not in lesson_period.lesson.teachers.all() and not sub - and not (inherit_privileges_preference and parent_group_owned_by_person) + and not parent_group_owned_by_person ): continue -- GitLab