From 38cdbec9fa93efac7b54f1158691a251c5f970b7 Mon Sep 17 00:00:00 2001 From: Luca Date: Sat, 17 May 2025 20:11:47 +0200 Subject: [PATCH] feat(fallback): assign restricted shifts from their own bucket --- shiftregister/fallback/models.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/shiftregister/fallback/models.py b/shiftregister/fallback/models.py index fa5b7ce..c7b46b1 100644 --- a/shiftregister/fallback/models.py +++ b/shiftregister/fallback/models.py @@ -40,7 +40,9 @@ class TeamMember(models.Model): return urlsafe_b64encode(self.id.to_bytes(3, byteorder="big")).decode("utf-8") def assign_random_shifts(self): - needs_fallback = Q(deleted=False, calendar__needs_fallback=True) + needs_fallback = Q( + deleted=False, calendar__needs_fallback=True, calendar__restricted=False + ) current_tz = timezone.get_current_timezone() # create a datetime combining the last date having fallback shifts @@ -67,6 +69,9 @@ class TeamMember(models.Model): self._assign_from_bucket(night_shifts) self._assign_from_bucket(shit_shifts) + for calendar in Calendar.objects.filter(needs_fallback=True, restricted=True): + self._assign_from_bucket(Q(deleted=False, calendar=calendar)) + def _assign_from_bucket(self, bucket_selector): bucket = Event.objects.filter(bucket_selector).annotate( fallback_count=Count("fallbackassignment"),