From 7f21c171fd4132c69073fe595c1de8b896250ff3 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Wed, 14 Dec 2016 13:10:54 +0100 Subject: [PATCH] Only allow payment provider preview if required fields are set --- .../control/templates/pretixcontrol/event/tickets.html | 3 ++- src/pretix/control/views/event.py | 7 +++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/pretix/control/templates/pretixcontrol/event/tickets.html b/src/pretix/control/templates/pretixcontrol/event/tickets.html index 6d4fbf0113..690bdd10a9 100644 --- a/src/pretix/control/templates/pretixcontrol/event/tickets.html +++ b/src/pretix/control/templates/pretixcontrol/event/tickets.html @@ -13,7 +13,8 @@
+ class="btn btn-default btn-sm pull-right {% if not provider.preview_allowed %}disabled{% endif %}" + target="_blank"> {% trans "Preview" %}

{{ provider.verbose_name }}

diff --git a/src/pretix/control/views/event.py b/src/pretix/control/views/event.py index f64492be6f..8d2e15015d 100644 --- a/src/pretix/control/views/event.py +++ b/src/pretix/control/views/event.py @@ -489,6 +489,13 @@ class TicketSettings(EventPermissionRequiredMixin, FormView): ) provider.settings_content = provider.settings_content_render(self.request) provider.form.prepare_fields() + + provider.preview_allowed = True + for k, v in provider.settings_form_fields.items(): + if v.required and not self.request.event.settings.get('ticketoutput_%s_%s' % (provider.identifier, k)): + provider.preview_allowed = False + break + providers.append(provider) return providers