From f94eac9e2d32dca14e960f97aae476ec6601b78b Mon Sep 17 00:00:00 2001 From: Elouan Le Bars Date: Wed, 11 Sep 2019 17:11:00 +0200 Subject: [PATCH] beesdoo_shift : adjusting to version 12.0, dates and datetime are now python objects --- beesdoo_shift/models/cooperative_status.py | 23 +++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/beesdoo_shift/models/cooperative_status.py b/beesdoo_shift/models/cooperative_status.py index cac14ee..ace20b8 100644 --- a/beesdoo_shift/models/cooperative_status.py +++ b/beesdoo_shift/models/cooperative_status.py @@ -217,10 +217,11 @@ class CooperativeStatus(models.Model): if (self.sr + self.sc) <= counter_unsubscribe or self.unsubscribed: self.status = 'unsubscribed' self.can_shop = False - elif self.today >= self.temporary_exempt_start_date and self.today <= self.temporary_exempt_end_date: - self.status = 'exempted' - self.can_shop = True - + #Check if exempted. Exempt end date is not required. + elif self.temporary_exempt_start_date and self.today >= self.temporary_exempt_start_date: + if not self.temporary_exempt_end_date or self.today <= self.temporary_exempt_end_date: + self.status = 'exempted' + self.can_shop = True #Transition to alert sr < 0 or stay in alert sr < 0 or sc < 0 and thus alert time is defined elif not ok and self.alert_start_time and self.extension_start_time and self.today <= add_days_delta(self.extension_start_time, grace_delay): self.status = 'extension' @@ -234,9 +235,8 @@ class CooperativeStatus(models.Model): elif (self.sr < 0) or (not ok and self.alert_start_time): self.status = 'alert' self.can_shop = True - #Check for holidays; Can be in holidays even in alert or other mode ? - elif self.today >= self.holiday_start_time and self.today <= self.holiday_end_time: + elif self.holiday_start_time and self.holiday_end_time and self.today >= self.holiday_start_time and self.today <= self.holiday_end_time: self.status = 'holiday' self.can_shop = False elif ok or (not self.alert_start_time and self.sr >= 0): @@ -251,9 +251,11 @@ class CooperativeStatus(models.Model): if self.sr <= counter_unsubscribe or self.unsubscribed: self.status = 'unsubscribed' self.can_shop = False - elif self.today >= self.temporary_exempt_start_date and self.today <= self.temporary_exempt_end_date: - self.status = 'exempted' - self.can_shop = True + #Check if exempted. Exempt end date is not required. + elif self.temporary_exempt_start_date and self.today >= self.temporary_exempt_start_date: + if not self.temporary_exempt_end_date or self.today <= self.temporary_exempt_end_date: + self.status = 'exempted' + self.can_shop = True #Transition to alert sr < 0 or stay in alert sr < 0 or sc < 0 and thus alert time is defined elif not ok and self.alert_start_time and self.extension_start_time and self.today <= add_days_delta(self.extension_start_time, grace_delay): self.status = 'extension' @@ -267,9 +269,8 @@ class CooperativeStatus(models.Model): elif (self.sr < 0) or (not ok and self.alert_start_time): self.status = 'alert' self.can_shop = True - #Check for holidays; Can be in holidays even in alert or other mode ? - elif self.today >= self.holiday_start_time and self.today <= self.holiday_end_time: + elif self.holiday_start_time and self.holiday_end_time and self.today >= self.holiday_start_time and self.today <= self.holiday_end_time: self.status = 'holiday' self.can_shop = False elif ok or (not self.alert_start_time and self.sr >= 0):