diff --git a/aleksis/apps/lesrooster/frontend/components/validity_range/validityRange.graphql b/aleksis/apps/lesrooster/frontend/components/validity_range/validityRange.graphql index 7124e1491f40ef9638f84e984f72f287fb04fcb1..dbdabf8395a23b206aeb65ef04a46c096842023d 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 a87c4de45a88fa564ca23f591132ea415bb84e48..56696a640117ac4cb01d091a335299e213197e43 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 a323858535e6fb3bc355bc3f4ca42b6f7a55aaed..0e126cd0858fe158a72aa20aab0417b4a65a7706 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")