diff --git a/aleksis/apps/chronos/util/chronos_helpers.py b/aleksis/apps/chronos/util/chronos_helpers.py index 045c132afae52e0301f4e7eb3903f08d9757cbc4..961fb01460f8c4fa65504d8726d653d223eeef3b 100644 --- a/aleksis/apps/chronos/util/chronos_helpers.py +++ b/aleksis/apps/chronos/util/chronos_helpers.py @@ -1,7 +1,7 @@ from datetime import date, datetime, timedelta from typing import TYPE_CHECKING, Optional -from django.db.models import Q +from django.db.models import Count, Q from guardian.shortcuts import get_objects_for_user @@ -19,7 +19,11 @@ if TYPE_CHECKING: def get_teachers(user: "User"): """Get the teachers whose timetables are allowed to be seen by current user.""" - teachers = Person.objects.all().order_by("short_name", "last_name") + teachers = ( + Person.objects.annotate(course_count=Count("courses_as_teacher")) + .filter(course_count__gt=0) + .order_by("short_name", "last_name") + ) if not user.has_perm("chronos.view_all_person_timetables"): teachers.filter(