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

[Full register] Adapt merged performance optimizations for events and extra lessons

parent 0258f376
No related branches found
No related tags found
1 merge request!120Resolve "Support events and extra lessons in class register"
Pipeline #5871 passed
...@@ -544,25 +544,24 @@ def full_register_group(request: HttpRequest, id_: int) -> HttpResponse: ...@@ -544,25 +544,24 @@ def full_register_group(request: HttpRequest, id_: int) -> HttpResponse:
context = {} context = {}
group = get_object_or_404(Group, pk=id_) group = get_object_or_404(Group, pk=id_)
groups_q = (
Q(lesson_period__lesson__groups=group)
| Q(lesson_period__lesson__groups__parent_groups=group)
| Q(extra_lesson__groups=group)
| Q(extra_lesson__groups__parent_groups=group)
| Q(event__groups=group)
| Q(event__groups__parent_groups=group)
)
personal_notes = ( personal_notes = (
PersonalNote.objects.select_related("lesson_period") PersonalNote.objects.select_related("lesson_period")
.prefetch_related( .prefetch_related(
"lesson_period__substitutions", "lesson_period__lesson__teachers", "groups_of_person" "lesson_period__substitutions", "lesson_period__lesson__teachers", "groups_of_person"
) )
.not_empty() .not_empty()
.filter( .filter(groups_q)
Q(lesson_period__lesson__groups=group)
| Q(lesson_period__lesson__groups__parent_groups=group)
)
) )
documentations = ( documentations = (
LessonDocumentation.objects.select_related("lesson_period") LessonDocumentation.objects.select_related("lesson_period").not_empty().filter(groups_q)
.not_empty()
.filter(
Q(lesson_period__lesson__groups=group)
| Q(lesson_period__lesson__groups__parent_groups=group)
)
) )
# Get all lesson periods for the selected group # Get all lesson periods for the selected group
lesson_periods = LessonPeriod.objects.filter_group(group).distinct() lesson_periods = LessonPeriod.objects.filter_group(group).distinct()
...@@ -576,8 +575,8 @@ def full_register_group(request: HttpRequest, id_: int) -> HttpResponse: ...@@ -576,8 +575,8 @@ def full_register_group(request: HttpRequest, id_: int) -> HttpResponse:
register_objects_by_day.setdefault(day, []).append( register_objects_by_day.setdefault(day, []).append(
( (
extra_lesson, extra_lesson,
list(extra_lesson.documentations.all()), list(filter(lambda d: d.extra_lesson == extra_lesson, documentations)),
list(extra_lesson.personal_notes.all()), list(filter(lambda d: d.extra_lesson == extra_lesson, personal_notes)),
None, None,
) )
) )
...@@ -591,8 +590,8 @@ def full_register_group(request: HttpRequest, id_: int) -> HttpResponse: ...@@ -591,8 +590,8 @@ def full_register_group(request: HttpRequest, id_: int) -> HttpResponse:
register_objects_by_day.setdefault(day, []).append( register_objects_by_day.setdefault(day, []).append(
( (
event_copy, event_copy,
list(event_copy.documentations.all()), list(filter(lambda d: d.event == event, documentations)),
list(event_copy.personal_notes.all()), list(filter(lambda d: d.event == event, personal_notes)),
None, None,
) )
) )
......
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