From e319b916a13b0494c9148d3214672c46360a04c7 Mon Sep 17 00:00:00 2001 From: Julian Leucker <leuckerj@gmail.com> Date: Mon, 4 Nov 2024 00:58:47 +0100 Subject: [PATCH] Hide persons without courses on timetable list --- aleksis/apps/chronos/util/chronos_helpers.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/aleksis/apps/chronos/util/chronos_helpers.py b/aleksis/apps/chronos/util/chronos_helpers.py index 045c132a..961fb014 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( -- GitLab