Skip to content
Snippets Groups Projects

Resolve "Keeping the overview of all timetables up to date"

All threads resolved!
Files
2
@@ -9,7 +9,7 @@ from django.utils import timezone
from guardian.core import ObjectPermissionChecker
from aleksis.core.models import Announcement, Group, Person
from aleksis.core.models import Announcement, Group, Person, SchoolTerm
from aleksis.core.util.core_helpers import get_site_preferences
from aleksis.core.util.predicates import check_global_permission
@@ -61,8 +61,10 @@ def get_teachers(user: "User"):
"""Get the teachers whose timetables are allowed to be seen by current user."""
checker = ObjectPermissionChecker(user)
school_term = SchoolTerm.current
school_term_q = Q(lessons_as_teacher__validity__school_term=school_term) if school_term else Q()
teachers = (
Person.objects.annotate(lessons_count=Count("lessons_as_teacher"))
Person.objects.annotate(lessons_count=Count("lessons_as_teacher", filter=school_term_q))
.filter(lessons_count__gt=0)
.order_by("short_name", "last_name")
)
@@ -120,8 +122,13 @@ def get_rooms(user: "User"):
"""Get the rooms whose timetables are allowed to be seen by current user."""
checker = ObjectPermissionChecker(user)
school_term = SchoolTerm.current
school_term_q = (
Q(lesson_periods__lesson__validity__school_term=school_term) if school_term else Q()
)
rooms = (
Room.objects.annotate(lessons_count=Count("lesson_periods"))
Room.objects.annotate(lessons_count=Count("lesson_periods", filter=school_term_q))
.filter(lessons_count__gt=0)
.order_by("short_name", "name")
)
Loading