Use localized settings for bank_details (#176)

This is a non-destructive upgrade since LazyI18nString will return a
normal string (which is content of the settings variable up until now)
as-is.
This commit is contained in:
Tobias Kunze
2016-08-29 20:07:36 +02:00
committed by Raphael Michel
parent c31622fca1
commit 6511d5297f
4 changed files with 28 additions and 16 deletions
+23 -11
View File
@@ -5,6 +5,7 @@ from django import forms
from django.template.loader import get_template from django.template.loader import get_template
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from pretix.base.i18n import I18nFormField, I18nTextarea, LazyI18nString
from pretix.base.payment import BasePaymentProvider from pretix.base.payment import BasePaymentProvider
@@ -14,19 +15,22 @@ class BankTransfer(BasePaymentProvider):
@property @property
def settings_form_fields(self): def settings_form_fields(self):
form_field = I18nFormField(
label=_('Bank account details'),
widget=I18nTextarea,
)
form_field.widget.enabled_langcodes = self.event.settings.get('locales')
return OrderedDict( return OrderedDict(
list(super().settings_form_fields.items()) + [ list(super().settings_form_fields.items()) + [('bank_details', form_field)]
('bank_details',
forms.CharField(
widget=forms.Textarea,
label=_('Bank account details'),
))
]
) )
def payment_form_render(self, request) -> str: def payment_form_render(self, request) -> str:
template = get_template('pretixplugins/banktransfer/checkout_payment_form.html') template = get_template('pretixplugins/banktransfer/checkout_payment_form.html')
ctx = {'request': request, 'event': self.event, 'settings': self.settings} ctx = {
'request': request,
'event': self.event,
'details': self.settings.get('bank_details', as_type=LazyI18nString),
}
return template.render(ctx) return template.render(ctx)
def checkout_prepare(self, request, total): def checkout_prepare(self, request, total):
@@ -40,12 +44,20 @@ class BankTransfer(BasePaymentProvider):
def order_pending_mail_render(self, order) -> str: def order_pending_mail_render(self, order) -> str:
template = get_template('pretixplugins/banktransfer/email/order_pending.txt') template = get_template('pretixplugins/banktransfer/email/order_pending.txt')
ctx = {'event': self.event, 'order': order, 'settings': self.settings} ctx = {
'event': self.event,
'order': order,
'details': self.settings.get('bank_details', as_type=LazyI18nString),
}
return template.render(ctx) return template.render(ctx)
def order_pending_render(self, request, order) -> str: def order_pending_render(self, request, order) -> str:
template = get_template('pretixplugins/banktransfer/pending.html') template = get_template('pretixplugins/banktransfer/pending.html')
ctx = {'request': request, 'order': order, 'settings': self.settings} ctx = {
'event': self.event,
'order': order,
'details': self.settings.get('bank_details', as_type=LazyI18nString),
}
return template.render(ctx) return template.render(ctx)
def order_control_render(self, request, order) -> str: def order_control_render(self, request, order) -> str:
@@ -54,6 +66,6 @@ class BankTransfer(BasePaymentProvider):
else: else:
payment_info = None payment_info = None
template = get_template('pretixplugins/banktransfer/control.html') template = get_template('pretixplugins/banktransfer/control.html')
ctx = {'request': request, 'event': self.event, 'settings': self.settings, ctx = {'request': request, 'event': self.event,
'payment_info': payment_info, 'order': order} 'payment_info': payment_info, 'order': order}
return template.render(ctx) return template.render(ctx)
@@ -6,7 +6,7 @@
{% endblocktrans %}</p> {% endblocktrans %}</p>
<address> <address>
{{ settings.bank_details|linebreaksbr }}<br> {{ details|linebreaksbr }}<br>
<strong> <strong>
{% trans "We will assign you a personal reference code to use after you completed the order." %} {% trans "We will assign you a personal reference code to use after you completed the order." %}
</strong> </strong>
@@ -1,4 +1,4 @@
{% load i18n %}{% load l10n %}{% blocktrans with bank=settings.bank_details code=order.full_code total=order.total|localize currency=event.currency %} {% load i18n %}{% load l10n %}{% blocktrans with bank=details code=order.full_code total=order.total|localize currency=event.currency %}
Please transfer the full amount to the following bank account. Please transfer the full amount to the following bank account.
Reference: {{ code }} Reference: {{ code }}
@@ -6,7 +6,7 @@
{% endblocktrans %}</p> {% endblocktrans %}</p>
<address> <address>
{{ settings.bank_details|linebreaksbr }}<br /> {{ details|linebreaksbr }}<br />
{% trans "Amount:" %} {{ order.total|localize }} {{ request.event.currency }}<br /> {% trans "Amount:" %} {{ order.total|localize }} {{ request.event.currency }}<br />
<strong>{% trans "Reference code (important):" %} {{ order.full_code }}</strong> <strong>{% trans "Reference code (important):" %} {{ order.full_code }}</strong>
</address> </address>