From 27f964f3aed908135303e9f1ad7c6cc3022726b6 Mon Sep 17 00:00:00 2001 From: Mira Date: Wed, 27 Nov 2024 11:13:07 +0100 Subject: [PATCH] Checkout flow: Observe direction when skipping AddOnsStep (#4658) --- src/pretix/presale/checkoutflow.py | 4 ++-- src/pretix/presale/views/checkout.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/pretix/presale/checkoutflow.py b/src/pretix/presale/checkoutflow.py index 70d1ce2d54..e58716f5ac 100644 --- a/src/pretix/presale/checkoutflow.py +++ b/src/pretix/presale/checkoutflow.py @@ -160,7 +160,7 @@ class BaseCheckoutFlowStep: kwargs['cart_namespace'] = request.resolver_match.kwargs['cart_namespace'] return eventreverse(self.request.event, 'presale:event.index', kwargs=kwargs) else: - return prev.get_step_url(request) + return prev.get_step_url(request) + '?dir=prev' def get_next_url(self, request): n = self.get_next_applicable(request) @@ -662,7 +662,7 @@ class AddOnsStep(CartMixin, AsyncAction, TemplateFlowStep): if 'async_id' in request.GET and settings.HAS_CELERY: return self.get_result(request) if len(self.forms) == 0 and len(self.cross_selling_data) == 0 and self.is_completed(request): - return redirect(self.get_next_url(request)) + return redirect(self.get_prev_url(request) if request.GET.get('dir') == 'prev' else self.get_next_url(request)) return TemplateFlowStep.get(self, request) def _clean_category(self, form, category): diff --git a/src/pretix/presale/views/checkout.py b/src/pretix/presale/views/checkout.py index 271464ae2b..2184776bb6 100644 --- a/src/pretix/presale/views/checkout.py +++ b/src/pretix/presale/views/checkout.py @@ -89,7 +89,7 @@ class CheckoutView(View): else: previous_step = step step.c_is_before = True - step.c_resolved_url = step.get_step_url(request) + step.c_resolved_url = step.get_step_url(request) + '?dir=prev' raise Http404() def redirect(self, url):