Only expire orders in the evening of their expiry date

This commit is contained in:
Raphael Michel
2016-09-02 09:52:36 +02:00
parent 70d6cb4255
commit 972ad211bf
3 changed files with 5 additions and 3 deletions

View File

@@ -250,7 +250,7 @@ class Order(LoggedModel):
@property
def is_expired_by_time(self):
return (
self.status == Order.STATUS_PENDING and self.expires < now()
self.status == Order.STATUS_PENDING and self.expires.date() < now().date()
and not self.event.settings.get('payment_term_expire_automatically')
)

View File

@@ -355,7 +355,9 @@ def perform_order(event: str, payment_provider: str, positions: List[str],
@receiver(signal=periodic_task)
def expire_orders(sender, **kwargs):
eventcache = {}
for o in Order.objects.filter(expires__lt=now(), status=Order.STATUS_PENDING).select_related('event'):
today = now().date()
for o in Order.objects.filter(expires__lt=today, status=Order.STATUS_PENDING).select_related('event'):
expire = eventcache.get(o.event.pk, None)
if expire is None:
expire = o.event.settings.get('payment_term_expire_automatically', as_type=bool)

View File

@@ -58,7 +58,7 @@ class OrderList(EventPermissionRequiredMixin, ListView):
if self.request.GET.get("status", "") != "":
s = self.request.GET.get("status", "")
if s == 'o':
qs = qs.filter(status=Order.STATUS_PENDING, expires__lt=now())
qs = qs.filter(status=Order.STATUS_PENDING, expires__lt=now().date())
else:
qs = qs.filter(status=s)
if self.request.GET.get("item", "") != "":