From b5a23224c8a0e0c79e7e0a72dcf7ab8e2a8b36fa Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Mon, 3 Oct 2016 11:14:20 +0200 Subject: [PATCH] Added admin action to make an expired order pending again --- doc/images/order_states.png | Bin 32448 -> 42977 bytes doc/images/order_states.puml | 1 + src/pretix/base/models/orders.py | 2 - src/pretix/control/forms/orders.py | 7 +++ .../templates/pretixcontrol/order/index.html | 4 +- src/pretix/control/views/orders.py | 22 ++++---- src/tests/control/test_orders.py | 52 +++++++++++++++++- 7 files changed, 72 insertions(+), 16 deletions(-) diff --git a/doc/images/order_states.png b/doc/images/order_states.png index 8297351b938c5fa5decd29fba79e8af9c1ee8f5d..a47808d4b1ed205a010c4541e7f9afe5b4ecd7ee 100644 GIT binary patch literal 42977 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%0A}7{R|ou@3?8 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 literal 32448 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 JD*5We{{w})KCJ)% diff --git a/doc/images/order_states.puml b/doc/images/order_states.puml index 9c32f0fa12..743c4207ca 100644 --- a/doc/images/order_states.puml +++ b/doc/images/order_states.puml @@ -11,6 +11,7 @@ Pending --> Paid: successful payment Pending --> Expired: automatically\nor manually\non admin action Expired --> Paid: if payment is received\nonly if quota left Expired --> Canceled +Expired --> Pending: manually\non admin action Paid --> Refunded: manually on\nadmin action\nor if an external\npayment provider\nnotifies about a\npayment refund Pending --> Canceled: on admin or\ncustomer action Paid -> Pending: manually on admin action diff --git a/src/pretix/base/models/orders.py b/src/pretix/base/models/orders.py index fc3a893acf..294ee9c181 100644 --- a/src/pretix/base/models/orders.py +++ b/src/pretix/base/models/orders.py @@ -286,8 +286,6 @@ class Order(LoggedModel): raise Quota.QuotaExceededException(error_messages['unavailable']) for quota in quotas: - # Lock the quota, so no other thread is allowed to perform sales covered by this - # quota while we're doing so. if quota.id not in quota_cache: quota_cache[quota.id] = quota quota.cached_availability = quota.availability(now_dt)[1] diff --git a/src/pretix/control/forms/orders.py b/src/pretix/control/forms/orders.py index 053941c2ff..c335f304dd 100644 --- a/src/pretix/control/forms/orders.py +++ b/src/pretix/control/forms/orders.py @@ -1,6 +1,7 @@ from django import forms from django.core.exceptions import ValidationError from django.db import models +from django.utils.timezone import now from django.utils.translation import ugettext_lazy as _ from pretix.base.forms import I18nModelForm @@ -15,6 +16,12 @@ class ExtendForm(I18nModelForm): 'expires': forms.DateTimeInput(attrs={'class': 'datetimepicker'}), } + def clean(self): + data = super().clean() + if data['expires'] < now(): + raise ValidationError(_('The new expiry date needs to be in the future.')) + return data + class ExporterForm(forms.Form): diff --git a/src/pretix/control/templates/pretixcontrol/order/index.html b/src/pretix/control/templates/pretixcontrol/order/index.html index bd5f75fdab..397b206c75 100644 --- a/src/pretix/control/templates/pretixcontrol/order/index.html +++ b/src/pretix/control/templates/pretixcontrol/order/index.html @@ -23,11 +23,11 @@
{% if order.status == 'n' or order.status == 'e' %} - {% endif %} - {% if order.status == 'n' %} {% trans "Extend payment term" %} + {% endif %} + {% if order.status == 'n' %} {% trans "Cancel order" %} diff --git a/src/pretix/control/views/orders.py b/src/pretix/control/views/orders.py index 065766e255..3d8e20b330 100644 --- a/src/pretix/control/views/orders.py +++ b/src/pretix/control/views/orders.py @@ -442,16 +442,12 @@ class OrderExtend(OrderView): permission = 'can_change_orders' def post(self, *args, **kwargs): - if self.order.status != Order.STATUS_PENDING: - messages.error(self.request, _('This action is only allowed for pending orders.')) - return self._redirect_back() - oldvalue = self.order.expires - if self.form.is_valid(): - if oldvalue > now(): + if self.order.status == Order.STATUS_PENDING: messages.success(self.request, _('The payment term has been changed.')) self.order.log_action('pretix.event.order.expirychanged', user=self.request.user, data={ - 'expires': self.order.expires + 'expires': self.order.expires, + 'state_change': False }) self.form.save() else: @@ -460,8 +456,11 @@ class OrderExtend(OrderView): is_available = self.order._is_still_available(now_dt) if is_available is True: self.form.save() + self.order.status = Order.STATUS_PENDING + self.order.save() self.order.log_action('pretix.event.order.expirychanged', user=self.request.user, data={ - 'expires': self.order.expires + 'expires': self.order.expires, + 'state_change': True }) messages.success(self.request, _('The payment term has been changed.')) else: @@ -473,10 +472,13 @@ class OrderExtend(OrderView): else: return self.get(*args, **kwargs) - def get(self, *args, **kwargs): - if self.order.status != Order.STATUS_PENDING: + def dispatch(self, request, *args, **kwargs): + if self.order.status not in (Order.STATUS_PENDING, Order.STATUS_EXPIRED): messages.error(self.request, _('This action is only allowed for pending orders.')) return self._redirect_back() + return super().dispatch(request, *kwargs, **kwargs) + + def get(self, *args, **kwargs): return render(self.request, 'pretixcontrol/order/extend.html', { 'order': self.order, 'form': self.form, diff --git a/src/tests/control/test_orders.py b/src/tests/control/test_orders.py index f23fedffec..30f1c5587c 100644 --- a/src/tests/control/test_orders.py +++ b/src/tests/control/test_orders.py @@ -447,11 +447,11 @@ def test_order_extend_not_expired(client, env): @pytest.mark.django_db -def test_order_extend_expired_quota_left(client, env): +def test_order_extend_overdue_quota_empty(client, env): o = Order.objects.get(id=env[2].id) o.expires = now() - timedelta(days=5) o.save() - q = Quota.objects.create(event=env[0], size=3) + q = Quota.objects.create(event=env[0], size=0) q.items.add(env[3]) newdate = (now() + timedelta(days=20)).strftime("%Y-%m-%d %H:%M:%S") client.login(email='dummy@dummy.dummy', password='dummy') @@ -463,10 +463,30 @@ def test_order_extend_expired_quota_left(client, env): assert o.expires.strftime("%Y-%m-%d %H:%M:%S") == newdate +@pytest.mark.django_db +def test_order_extend_expired_quota_left(client, env): + o = Order.objects.get(id=env[2].id) + o.expires = now() - timedelta(days=5) + o.status = Order.STATUS_EXPIRED + o.save() + q = Quota.objects.create(event=env[0], size=3) + q.items.add(env[3]) + newdate = (now() + timedelta(days=20)).strftime("%Y-%m-%d %H:%M:%S") + client.login(email='dummy@dummy.dummy', password='dummy') + response = client.post('/control/event/dummy/dummy/orders/FOO/extend', { + 'expires': newdate + }, follow=True) + assert 'alert-success' in response.rendered_content + o = Order.objects.get(id=env[2].id) + assert o.expires.strftime("%Y-%m-%d %H:%M:%S") == newdate + assert o.status == Order.STATUS_PENDING + + @pytest.mark.django_db def test_order_extend_expired_quota_empty(client, env): o = Order.objects.get(id=env[2].id) o.expires = now() - timedelta(days=5) + o.status = Order.STATUS_EXPIRED olddate = o.expires o.save() q = Quota.objects.create(event=env[0], size=0) @@ -479,6 +499,34 @@ def test_order_extend_expired_quota_empty(client, env): assert 'alert-danger' in response.rendered_content o = Order.objects.get(id=env[2].id) assert o.expires.strftime("%Y-%m-%d %H:%M:%S") == olddate.strftime("%Y-%m-%d %H:%M:%S") + assert o.status == Order.STATUS_EXPIRED + + +@pytest.mark.django_db +def test_order_extend_expired_quota_partial(client, env): + o = Order.objects.get(id=env[2].id) + OrderPosition.objects.create( + order=o, + item=env[3], + variation=None, + price=Decimal("14"), + attendee_name="Peter" + ) + o.expires = now() - timedelta(days=5) + o.status = Order.STATUS_EXPIRED + olddate = o.expires + o.save() + q = Quota.objects.create(event=env[0], size=1) + q.items.add(env[3]) + newdate = (now() + timedelta(days=20)).strftime("%Y-%m-%d %H:%M:%S") + client.login(email='dummy@dummy.dummy', password='dummy') + response = client.post('/control/event/dummy/dummy/orders/FOO/extend', { + 'expires': newdate + }, follow=True) + assert 'alert-danger' in response.rendered_content + o = Order.objects.get(id=env[2].id) + assert o.expires.strftime("%Y-%m-%d %H:%M:%S") == olddate.strftime("%Y-%m-%d %H:%M:%S") + assert o.status == Order.STATUS_EXPIRED @pytest.mark.django_db