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