Refs #82 -- Make order expiry more clear (#116)

This commit is contained in:
Raphael Michel
2016-05-07 17:03:32 +02:00
parent c9350dde40
commit 944b5db0bf
14 changed files with 126 additions and 21 deletions

View File

@@ -4,7 +4,6 @@ import string
from datetime import datetime
from decimal import Decimal
from django import forms
from django.db import models
from django.utils.timezone import now
from django.utils.translation import ugettext_lazy as _
@@ -204,6 +203,13 @@ class Order(LoggedModel):
return True
return False # nothing there to modify
@property
def is_expired_by_time(self):
return (
self.status == Order.STATUS_PENDING and self.expires < now()
and not self.event.settings.get('payment_term_expire_automatically')
)
def _can_be_paid(self) -> Union[bool, str]:
error_messages = {
'late': _("The payment is too late to be accepted."),
@@ -212,7 +218,7 @@ class Order(LoggedModel):
if self.event.settings.get('payment_term_last') \
and now() > self.event.settings.get('payment_term_last'):
return error_messages['late']
if now() < self.expires:
if self.status == self.STATUS_PENDING:
return True
if not self.event.settings.get('payment_term_accept_late'):
return error_messages['late']