Skip to content
Snippets Groups Projects

Performance optimizations

Merged Jonathan Weth requested to merge feature/performance-optimizations into master
2 files
+ 12
4
Compare changes
  • Side-by-side
  • Inline
Files
2
from datetime import date
from typing import Dict, Optional, Union
from typing import Dict, Optional, Union, Iterator
from django.db.models import Exists, OuterRef, QuerySet
from django.utils.translation import gettext as _
@@ -186,11 +186,12 @@ def get_or_create_lesson_documentation(
@LessonPeriod.method
def get_absences(self, week: Optional[CalendarWeek] = None) -> QuerySet:
def get_absences(self, week: Optional[CalendarWeek] = None) -> Iterator:
"""Get all personal notes of absent persons for this lesson."""
if not week:
week = self.week
return self.personal_notes.filter(week=week.week, year=week.year, absent=True)
return filter(lambda p: p.week == week.week and p.year == week.year and p.absent, self.personal_notes.all())
@LessonPeriod.method
@@ -230,7 +231,7 @@ def get_extra_marks(
week = self.week
stats = {}
for extra_mark in ExtraMark.objects.all():
for extra_mark in ExtraMark.all:
qs = self.personal_notes.filter(
week=week.week, year=week.year, extra_marks=extra_mark
)
Loading