forked from CGM_Public/pretix_original
Allow to store strucutred SEPA bank transfer details
This commit is contained in:
@@ -489,6 +489,7 @@ class ProviderForm(SettingsForm):
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
self.settingspref = kwargs.pop('settingspref')
|
||||
self.provider = kwargs.pop('provider', None)
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
def prepare_fields(self):
|
||||
@@ -515,6 +516,9 @@ class ProviderForm(SettingsForm):
|
||||
val = cleaned_data.get(k)
|
||||
if v._required and not val:
|
||||
self.add_error(k, _('This field is required.'))
|
||||
if self.provider:
|
||||
cleaned_data = self.provider.settings_form_clean(cleaned_data)
|
||||
return cleaned_data
|
||||
|
||||
|
||||
class InvoiceSettingsForm(SettingsForm):
|
||||
@@ -1189,7 +1193,13 @@ class QuickSetupForm(I18nForm):
|
||||
"bank statements to process the payments within pretix, or mark them as paid manually."),
|
||||
required=False
|
||||
)
|
||||
payment_banktransfer_bank_details = BankTransfer.form_field(required=False)
|
||||
btf = BankTransfer.form_fields()
|
||||
payment_banktransfer_bank_details_type = btf['bank_details_type']
|
||||
payment_banktransfer_bank_details_sepa_name = btf['bank_details_sepa_name']
|
||||
payment_banktransfer_bank_details_sepa_iban = btf['bank_details_sepa_iban']
|
||||
payment_banktransfer_bank_details_sepa_bic = btf['bank_details_sepa_bic']
|
||||
payment_banktransfer_bank_details_sepa_bank = btf['bank_details_sepa_bank']
|
||||
payment_banktransfer_bank_details = btf['bank_details']
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
self.obj = kwargs.pop('event', None)
|
||||
@@ -1199,6 +1209,16 @@ class QuickSetupForm(I18nForm):
|
||||
if not self.obj.settings.payment_stripe_connect_client_id:
|
||||
del self.fields['payment_stripe__enabled']
|
||||
self.fields['payment_banktransfer_bank_details'].required = False
|
||||
for f in self.fields.values():
|
||||
if 'data-required-if' in f.widget.attrs:
|
||||
del f.widget.attrs['data-required-if']
|
||||
|
||||
def clean(self):
|
||||
cleaned_data = super().clean()
|
||||
if cleaned_data.get('payment_banktransfer__enabled'):
|
||||
provider = BankTransfer(self.obj)
|
||||
cleaned_data = provider.settings_form_clean(cleaned_data)
|
||||
return cleaned_data
|
||||
|
||||
|
||||
class QuickSetupProductForm(I18nForm):
|
||||
|
||||
@@ -4,25 +4,27 @@
|
||||
{% load formset_tags %}
|
||||
{% block title %}{{ request.event.name }}{% endblock %}
|
||||
{% block content %}
|
||||
<div class="quick-setup-step">
|
||||
<div class="quick-icon">
|
||||
<span class="fa fa-fw fa-check-circle text-success"></span>
|
||||
</div>
|
||||
<div class="quick-content">
|
||||
{% if request.method == "GET" %}
|
||||
<div class="quick-setup-step">
|
||||
<div class="quick-icon">
|
||||
<span class="fa fa-fw fa-check-circle text-success"></span>
|
||||
</div>
|
||||
<div class="quick-content">
|
||||
|
||||
<h2>{% trans "Congratulations!" %}</h2>
|
||||
<p>
|
||||
<strong>{% trans "You just created an event!" %}</strong>
|
||||
</p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
You can scroll down and create your first ticket products quickly, or you can use the navigation
|
||||
on the left to modify the settings of your event in much more detail.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
<div class="clearfix"></div>
|
||||
<h2>{% trans "Congratulations!" %}</h2>
|
||||
<p>
|
||||
<strong>{% trans "You just created an event!" %}</strong>
|
||||
</p>
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
You can scroll down and create your first ticket products quickly, or you can use the navigation
|
||||
on the left to modify the settings of your event in much more detail.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<form action="" method="post" class="form-horizontal">
|
||||
{% csrf_token %}
|
||||
@@ -157,6 +159,11 @@
|
||||
</p>
|
||||
{% bootstrap_field form.payment_banktransfer__enabled layout="control" label_class="sr-only" field_class="col-md-12" %}
|
||||
<div data-display-dependency="#id_payment_banktransfer__enabled">
|
||||
{% bootstrap_field form.payment_banktransfer_bank_details_type layout="control" %}
|
||||
{% bootstrap_field form.payment_banktransfer_bank_details_sepa_name layout="control" %}
|
||||
{% bootstrap_field form.payment_banktransfer_bank_details_sepa_iban layout="control" %}
|
||||
{% bootstrap_field form.payment_banktransfer_bank_details_sepa_bic layout="control" %}
|
||||
{% bootstrap_field form.payment_banktransfer_bank_details_sepa_bank layout="control" %}
|
||||
{% bootstrap_field form.payment_banktransfer_bank_details layout="control" %}
|
||||
</div>
|
||||
{% if form.payment_stripe__enabled %}
|
||||
|
||||
@@ -270,7 +270,8 @@ class PaymentProviderSettings(EventSettingsViewMixin, EventPermissionRequiredMix
|
||||
form = ProviderForm(
|
||||
obj=self.request.event,
|
||||
settingspref=self.provider.settings.get_prefix(),
|
||||
data=(self.request.POST if self.request.method == 'POST' else None)
|
||||
data=(self.request.POST if self.request.method == 'POST' else None),
|
||||
provider=self.provider
|
||||
)
|
||||
form.fields = OrderedDict(
|
||||
[
|
||||
@@ -1193,6 +1194,7 @@ class QuickSetupView(FormView):
|
||||
if form.is_valid() and self.formset.is_valid():
|
||||
return self.form_valid(form)
|
||||
else:
|
||||
messages.error(self.request, _('We could not save your changes. See below for details.'))
|
||||
return self.form_invalid(form)
|
||||
|
||||
@transaction.atomic
|
||||
@@ -1224,8 +1226,12 @@ class QuickSetupView(FormView):
|
||||
data={'plugin': 'pretix.plugins.banktransfer'})
|
||||
plugins_active.append('pretix.plugins.banktransfer')
|
||||
self.request.event.settings.payment_banktransfer__enabled = True
|
||||
self.request.event.settings.payment_banktransfer_bank_details = form.cleaned_data[
|
||||
'payment_banktransfer_bank_details']
|
||||
for f in ('bank_details', 'bank_details_type', 'bank_details_sepa_name', 'bank_details_sepa_iban',
|
||||
'bank_details_sepa_bic', 'bank_details_sepa_bank'):
|
||||
self.request.event.settings.set(
|
||||
'payment_banktransfer_%s' % f,
|
||||
form.cleaned_data['payment_banktransfer_%s' % f]
|
||||
)
|
||||
|
||||
if form.cleaned_data.get('payment_stripe__enabled', None):
|
||||
if 'pretix.plugins.stripe' not in plugins_active:
|
||||
|
||||
Reference in New Issue
Block a user