From bd0a1650d07c2b2a422c7fc26c36f5405be71513 Mon Sep 17 00:00:00 2001 From: Jonathan Weth <git@jonathanweth.de> Date: Fri, 4 Dec 2020 14:48:26 +0100 Subject: [PATCH] Sort affected/absent teachers/groups by short name --- aleksis/apps/chronos/managers.py | 34 ++++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/aleksis/apps/chronos/managers.py b/aleksis/apps/chronos/managers.py index b9530c82..b23f077f 100644 --- a/aleksis/apps/chronos/managers.py +++ b/aleksis/apps/chronos/managers.py @@ -460,14 +460,20 @@ class LessonSubstitutionQuerySet(LessonDataQuerySet): Return all teachers which are affected by selected substitutions (as substituted or substituting). """ - return Person.objects.filter( - Q(lessons_as_teacher__in=self.affected_lessons()) | Q(lesson_substitutions__in=self) - ).annotate(lessons_count=Count("lessons_as_teacher")) + return ( + Person.objects.filter( + Q(lessons_as_teacher__in=self.affected_lessons()) | Q(lesson_substitutions__in=self) + ) + .annotate(lessons_count=Count("lessons_as_teacher")) + .order_by("short_name") + ) def affected_groups(self): """Return all groups which are affected by selected substitutions.""" - return Group.objects.filter(lessons__in=self.affected_lessons()).annotate( - lessons_count=Count("lessons") + return ( + Group.objects.filter(lessons__in=self.affected_lessons()) + .annotate(lessons_count=Count("lessons")) + .order_by("short_name") ) @@ -502,13 +508,25 @@ class AbsenceQuerySet(DateRangeQuerySetMixin, SchoolTermRelatedQuerySet): """QuerySet with custom query methods for absences.""" def absent_teachers(self): - return Person.objects.filter(absences__in=self).annotate(absences_count=Count("absences")) + return ( + Person.objects.filter(absences__in=self) + .annotate(absences_count=Count("absences")) + .order_by("short_name") + ) def absent_groups(self): - return Group.objects.filter(absences__in=self).annotate(absences_count=Count("absences")) + return ( + Group.objects.filter(absences__in=self) + .annotate(absences_count=Count("absences")) + .order_by("short_name") + ) def absent_rooms(self): - return Person.objects.filter(absences__in=self).annotate(absences_count=Count("absences")) + return ( + Person.objects.filter(absences__in=self) + .annotate(absences_count=Count("absences")) + .order_by("short_name") + ) class HolidayQuerySet(QuerySet, DateRangeQuerySetMixin): -- GitLab