Skip to content
Snippets Groups Projects
Commit 9a4a180d authored by Nik | Klampfradler's avatar Nik | Klampfradler
Browse files

Merge branch '105-make-previous-next-lesson-buttons-independent-of-validity-range' into 'master'

Resolve "Make previous/next lesson buttons independent of validity range"

Closes #105

See merge request !114
parents 284b8d33 4a8ac71f
No related branches found
No related tags found
1 merge request!114Resolve "Make previous/next lesson buttons independent of validity range"
Pipeline #5062 passed
......@@ -468,6 +468,20 @@ class LessonPeriod(ExtensibleModel, WeekAnnotationMixin):
def __str__(self) -> str:
return f"{self.period}, {self.lesson}"
@property
def _equal_lessons(self):
"""Get all lesson periods with equal lessons in the whole school term."""
qs = LessonPeriod.objects.filter(
lesson__subject=self.lesson.subject,
lesson__validity__school_term=self.lesson.validity.school_term,
)
for group in self.lesson.groups.all():
qs = qs.filter(lesson__groups=group)
for teacher in self.lesson.teachers.all():
qs = qs.filter(lesson__teachers=teacher)
return qs
@property
def next(self) -> "LessonPeriod":
"""Get next lesson period of this lesson.
......@@ -475,7 +489,7 @@ class LessonPeriod(ExtensibleModel, WeekAnnotationMixin):
.. warning::
To use this property, the provided lesson period must be annotated with a week.
"""
return LessonPeriod.objects.filter(lesson=self.lesson).next_lesson(self)
return self._equal_lessons.next_lesson(self)
@property
def prev(self) -> "LessonPeriod":
......@@ -484,7 +498,7 @@ class LessonPeriod(ExtensibleModel, WeekAnnotationMixin):
.. warning::
To use this property, the provided lesson period must be annotated with a week.
"""
return LessonPeriod.objects.filter(lesson=self.lesson).next_lesson(self, -1)
return self._equal_lessons.next_lesson(self, -1)
class Meta:
ordering = [
......
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