From d99bf7437ab801e96fe7a2e27411d2d856d926ba Mon Sep 17 00:00:00 2001 From: Mira Weller Date: Thu, 4 Apr 2024 13:26:57 +0200 Subject: [PATCH] Use time_machine_now in more Order related checks and for Order.datetime --- src/pretix/base/models/orders.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/pretix/base/models/orders.py b/src/pretix/base/models/orders.py index c6015f335..94430e242 100644 --- a/src/pretix/base/models/orders.py +++ b/src/pretix/base/models/orders.py @@ -504,7 +504,7 @@ class Order(LockModel, LoggedModel): if 'update_fields' in kwargs: kwargs['update_fields'] = {'code'}.union(kwargs['update_fields']) if not self.datetime: - self.datetime = now() + self.datetime = time_machine_now() if 'update_fields' in kwargs: kwargs['update_fields'] = {'datetime'}.union(kwargs['update_fields']) if not self.expires: @@ -682,7 +682,7 @@ class Order(LockModel, LoggedModel): for op in positions: if op.issued_gift_cards.all(): return False - if self.user_change_deadline and now() > self.user_change_deadline: + if self.user_change_deadline and time_machine_now() > self.user_change_deadline: return False return ( @@ -714,7 +714,7 @@ class Order(LockModel, LoggedModel): return False if op.granted_memberships.with_usages().filter(usages__gt=0): return False - if self.user_cancel_deadline and now() > self.user_cancel_deadline: + if self.user_cancel_deadline and time_machine_now() > self.user_cancel_deadline: return False if self.status == Order.STATUS_PAID: @@ -852,7 +852,7 @@ class Order(LockModel, LoggedModel): return False modify_deadline = self.modify_deadline - if modify_deadline is not None and now() > modify_deadline: + if modify_deadline is not None and time_machine_now() > modify_deadline: return False positions = list( @@ -904,7 +904,7 @@ class Order(LockModel, LoggedModel): return self.event.settings.ticket_download and ( self.event.settings.ticket_download_date is None or self.ticket_download_date is None - or now() > self.ticket_download_date + or time_machine_now() > self.ticket_download_date ) and ( self.status == Order.STATUS_PAID or ( @@ -976,7 +976,7 @@ class Order(LockModel, LoggedModel): return error_messages['require_approval'] term_last = self.payment_term_last if term_last and not ignore_date: - if now() > term_last: + if time_machine_now() > term_last: return error_messages['late_lastdate'] if self.status == self.STATUS_PENDING: @@ -999,7 +999,7 @@ class Order(LockModel, LoggedModel): 'voucher_budget': _('The voucher "{voucher}" no longer has sufficient budget.'), 'voucher_usages': _('The voucher "{voucher}" has been used in the meantime.'), } - now_dt = now_dt or now() + now_dt = now_dt or time_machine_now() positions = list(self.positions.all().select_related('item', 'variation', 'seat', 'voucher')) quota_cache = {} v_budget = {} @@ -2536,9 +2536,9 @@ class OrderPosition(AbstractPosition): if cartpos.item.validity_mode: valid_from, valid_until = cartpos.item.compute_validity( requested_start=( - max(cartpos.requested_valid_from, now()) + max(cartpos.requested_valid_from, time_machine_now()) if cartpos.requested_valid_from and cartpos.item.validity_dynamic_start_choice - else now() + else time_machine_now() ), enforce_start_limit=True, override_tz=order.event.timezone,