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(