Skip to content
Snippets Groups Projects
Commit 89e7d348 authored by Julian's avatar Julian Committed by Hangzhi Yu
Browse files

Allow filtering LessonEvents by course

parent e105841a
No related branches found
No related tags found
1 merge request!301New data model based on calendar events
Pipeline #166016 failed
......@@ -12,6 +12,7 @@ from calendarweek import CalendarWeek
from polymorphic.managers import PolymorphicQuerySet
from aleksis.apps.chronos.util.date import week_weekday_from_date, week_weekday_to_date
from aleksis.apps.cursus.models import Course
from aleksis.core.managers import (
AlekSISBaseManagerWithoutMigrations,
DateRangeQuerySetMixin,
......@@ -888,6 +889,12 @@ class LessonEventQuerySet(PolymorphicQuerySet):
)
return self.filter(Q(rooms=room) | Q(pk__in=amended)).distinct()
def for_course(self, course: Union[int, Course]):
amended = self.filter(Q(amended_by__isnull=False) & (Q(course=course))).values_list(
"amended_by__pk", flat=True
)
return self.filter(Q(course=course) | Q(pk__in=amended)).distinct()
def for_person(self, person: Union[int, Person]):
amended = self.filter(
Q(amended_by__isnull=False) & (Q(teachers=person) | Q(groups__members=person))
......
......@@ -1546,6 +1546,8 @@ class LessonEvent(CalendarEvent):
return objs.for_group(obj_id)
elif type_ == "ROOM":
return objs.for_room(obj_id)
elif type_ == "COURSE":
return objs.for_course(obj_id)
return objs.for_person(request.user.person)
class Meta:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment