Highlight items that are unavailable by time

This commit is contained in:
Raphael Michel
2018-11-29 10:13:43 +01:00
parent d8070ba8a3
commit 94f2ad9325
2 changed files with 27 additions and 10 deletions

View File

@@ -364,17 +364,21 @@ class Item(LoggedModel):
rate=Decimal('0.00'), name='')
return self.tax_rule.tax(price, base_price_is=base_price_is)
def is_available_by_time(self, now_dt: datetime=None) -> bool:
now_dt = now_dt or now()
if self.available_from and self.available_from > now_dt:
return False
if self.available_until and self.available_until < now_dt:
return False
return True
def is_available(self, now_dt: datetime=None) -> bool:
"""
Returns whether this item is available according to its ``active`` flag
and its ``available_from`` and ``available_until`` fields
"""
now_dt = now_dt or now()
if not self.active:
return False
if self.available_from and self.available_from > now_dt:
return False
if self.available_until and self.available_until < now_dt:
if not self.active or not self.is_available_by_time(now_dt):
return False
return True