From 4531fda589d5cf3106986e17d3cefb67651437e4 Mon Sep 17 00:00:00 2001
From: Dominik George <dominik.george@teckids.org>
Date: Sun, 27 Oct 2019 16:17:01 +0100
Subject: [PATCH] Add next() method to LessonPeriod QUerySet to get the n-th
 item before/after a reference lesson. Advances #34.

---
 biscuit/apps/chronos/models.py | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/biscuit/apps/chronos/models.py b/biscuit/apps/chronos/models.py
index c61b99c7..49eece26 100644
--- a/biscuit/apps/chronos/models.py
+++ b/biscuit/apps/chronos/models.py
@@ -82,6 +82,10 @@ class LessonPeriodQuerySet(models.QuerySet):
         return self.filter(
                 Q(substitutions__room=room, substitutions__week=models.F('_week')) | Q(room=room))
 
+    def next(self, reference: LessonPeriod, offset: Optional[int] = 1) -> LessonPeriod:
+        id_ = list(self.values_list('id', flat=True)).index(reference.id)
+        return self.all()[id_+offset]
+
     def filter_from_query(self, query_data: QueryDict):
         if query_data.get('group', None):
             return self.filter_group(int(query_data['group']))
-- 
GitLab