From 988340400d4101050a1eaa3adaa42b39baed5e54 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Mon, 19 Sep 2016 18:06:07 +0200 Subject: [PATCH] Only show "change payment method" if another one is available --- .../templates/pretixpresale/event/order.html | 14 ++++++++------ src/pretix/presale/views/order.py | 10 ++++++++++ 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/pretix/presale/templates/pretixpresale/event/order.html b/src/pretix/presale/templates/pretixpresale/event/order.html index c0fed6e2cb..abef98d3dd 100644 --- a/src/pretix/presale/templates/pretixpresale/event/order.html +++ b/src/pretix/presale/templates/pretixpresale/event/order.html @@ -33,12 +33,14 @@ {% if order.status == "n" %}
- + {% if can_change_method %} + + {% endif %}

{% trans "Payment" %}

diff --git a/src/pretix/presale/views/order.py b/src/pretix/presale/views/order.py index a59ca0360c..ec558343cc 100644 --- a/src/pretix/presale/views/order.py +++ b/src/pretix/presale/views/order.py @@ -113,6 +113,16 @@ class OrderDetails(EventViewMixin, OrderDetailMixin, CartMixin, TemplateView): and self.payment_provider.is_enabled and self.order._can_be_paid() ) + + ctx['can_change_method'] = False + responses = register_payment_providers.send(self.request.event) + for receiver, response in responses: + provider = response(self.request.event) + if (provider.identifier != self.order.payment_provider and provider.is_enabled + and provider.order_change_allowed(self.order)): + ctx['can_change_method'] = True + break + elif self.order.status == Order.STATUS_PAID: ctx['payment'] = self.payment_provider.order_paid_render(self.request, self.order) ctx['can_retry'] = False