From 25bbd55b82d8829f90834c01b6da10a84f038a2a Mon Sep 17 00:00:00 2001
From: Julian Leucker <leuckerj@gmail.com>
Date: Thu, 21 Mar 2024 13:15:44 +0100
Subject: [PATCH] Add property `isCurrent` to validityranges

---
 .../frontend/components/validity_range/validityRange.graphql  | 1 +
 aleksis/apps/lesrooster/models.py                             | 4 ++++
 aleksis/apps/lesrooster/schema/validity_range.py              | 1 +
 3 files changed, 6 insertions(+)

diff --git a/aleksis/apps/lesrooster/frontend/components/validity_range/validityRange.graphql b/aleksis/apps/lesrooster/frontend/components/validity_range/validityRange.graphql
index 7124e149..dbdabf83 100644
--- a/aleksis/apps/lesrooster/frontend/components/validity_range/validityRange.graphql
+++ b/aleksis/apps/lesrooster/frontend/components/validity_range/validityRange.graphql
@@ -122,6 +122,7 @@ query timeGrids($orderBy: [String], $filters: JSONString) {
     validityRange {
       id
       name
+      isCurrent
       dateStart
       dateEnd
     }
diff --git a/aleksis/apps/lesrooster/models.py b/aleksis/apps/lesrooster/models.py
index a87c4de4..56696a64 100644
--- a/aleksis/apps/lesrooster/models.py
+++ b/aleksis/apps/lesrooster/models.py
@@ -72,6 +72,10 @@ class ValidityRange(ExtensibleModel):
         """Get the currently active validity range."""
         return cls.get_current()
 
+    @property
+    def is_current(self) -> bool:
+        return self.date_start <= (today := timezone.now().date()) and self.date_end >= today
+
     def clean(self):
         """Ensure that there is only one validity range at each point of time."""
         if self.date_end < self.date_start:
diff --git a/aleksis/apps/lesrooster/schema/validity_range.py b/aleksis/apps/lesrooster/schema/validity_range.py
index a3238585..0e126cd0 100644
--- a/aleksis/apps/lesrooster/schema/validity_range.py
+++ b/aleksis/apps/lesrooster/schema/validity_range.py
@@ -18,6 +18,7 @@ from ..models import ValidityRange
 
 
 class ValidityRangeType(PermissionsTypeMixin, DjangoFilterMixin, DjangoObjectType):
+    is_current = graphene.Boolean()
     class Meta:
         model = ValidityRange
         fields = ("id", "school_term", "name", "date_start", "date_end", "status", "time_grids")
-- 
GitLab