From c6fd5bc8645acd017cc76d17789371b951ef9575 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Fri, 3 Dec 2021 10:04:07 +0100 Subject: [PATCH] Self-service order change: Fix price constraints not actually being enforced --- src/pretix/presale/views/order.py | 1 + src/tests/presale/test_order_change.py | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/src/pretix/presale/views/order.py b/src/pretix/presale/views/order.py index 42d6f44e86..495e3f1ee1 100644 --- a/src/pretix/presale/views/order.py +++ b/src/pretix/presale/views/order.py @@ -1421,6 +1421,7 @@ class OrderChange(EventViewMixin, OrderDetailMixin, TemplateView): self._validate_total_diff(ocm) except OrderError as e: messages.error(self.request, str(e)) + return self.get(request, *args, **kwargs) if "confirm" in request.POST: try: diff --git a/src/tests/presale/test_order_change.py b/src/tests/presale/test_order_change.py index 9afd140fef..633b4af4f7 100644 --- a/src/tests/presale/test_order_change.py +++ b/src/tests/presale/test_order_change.py @@ -1134,6 +1134,18 @@ class OrderChangeAddonsTest(BaseOrdersTest): assert 'alert-danger' in response.content.decode() assert 'reduces' in response.content.decode() + response = self.client.post( + '/%s/%s/order/%s/%s/change' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret), + { + 'confirm': 'true' + }, + follow=True + ) + assert 'alert-danger' in response.content.decode() + assert 'reduces' in response.content.decode() + self.order.refresh_from_db() + assert self.order.total == Decimal('35.00') + def test_allow_user_price_eq(self): self.event.settings.change_allow_user_price = 'eq' response = self.client.post(