diff --git a/CHANGELOG.rst b/CHANGELOG.rst index ce6d5f86722903d67b65f39be3285ba428f0f1cc..f61c4ed035d8c3668f3afb3ff78315b282d9ecb5 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -20,6 +20,7 @@ Fixed * Preference section verbose names were displayed in server language and not user language (fixed by using gettext_lazy). * Affected groups and persons in substitutions list were displayed multiple times. +* ``lessons_on_day`` didn't work as expected if a person has no lessons. `2.0b2` - 2021-06-02 -------------------- diff --git a/aleksis/apps/chronos/model_extensions.py b/aleksis/apps/chronos/model_extensions.py index 6cb98dad7d5c7ca732dfe800345abbf34f6320de..570df4e23a2f5706857d727c02ae13d8a6a91e18 100644 --- a/aleksis/apps/chronos/model_extensions.py +++ b/aleksis/apps/chronos/model_extensions.py @@ -83,7 +83,11 @@ def lesson_periods_as_teacher(self): @Person.method def lessons_on_day(self, day: date): """Get all lessons of this person (either as participant or teacher) on the given day.""" - return LessonPeriod.objects.on_day(day).filter_from_person(self).order_by("period__period") + qs = LessonPeriod.objects.on_day(day).filter_from_person(self) + if qs: + # This is a union queryset, so order by must be after the union. + return qs.order_by("period__period") + return None @Person.method