From 07a6d4898a82b3a1174269f429154701b3effcfa Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Thu, 8 Dec 2022 10:53:00 +0100 Subject: [PATCH] Fix missing Discount.is_available_by_time method --- src/pretix/base/models/discount.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/pretix/base/models/discount.py b/src/pretix/base/models/discount.py index ff6ac5a24..0e325861f 100644 --- a/src/pretix/base/models/discount.py +++ b/src/pretix/base/models/discount.py @@ -28,6 +28,7 @@ from typing import Dict, Optional, Tuple from django.core.exceptions import ValidationError from django.core.validators import MinValueValidator from django.db import models +from django.utils.timezone import now from django.utils.translation import gettext_lazy as _, pgettext_lazy from django_scopes import ScopedManager @@ -198,6 +199,14 @@ class Discount(LoggedModel): 'subevent_mode': self.subevent_mode, }) + def is_available_by_time(self, now_dt=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 _apply_min_value(self, positions, idx_group, result): if self.condition_min_value and sum(positions[idx][2] for idx in idx_group) < self.condition_min_value: return