diff --git a/src/pretix/base/models/items.py b/src/pretix/base/models/items.py index 3e01777e5d..6386217757 100644 --- a/src/pretix/base/models/items.py +++ b/src/pretix/base/models/items.py @@ -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 diff --git a/src/pretix/control/templates/pretixcontrol/items/index.html b/src/pretix/control/templates/pretixcontrol/items/index.html index 8df1ac1ecd..adec0e9eeb 100644 --- a/src/pretix/control/templates/pretixcontrol/items/index.html +++ b/src/pretix/control/templates/pretixcontrol/items/index.html @@ -54,8 +54,16 @@