mirror of
https://github.com/pretix/pretix.git
synced 2026-05-05 15:14:04 +00:00
Banktransfer: Show reference when switching payment method to bank transfer
This commit is contained in:
@@ -513,7 +513,7 @@ class BasePaymentProvider:
|
||||
|
||||
return timing and pricing
|
||||
|
||||
def payment_form_render(self, request: HttpRequest, total: Decimal) -> str:
|
||||
def payment_form_render(self, request: HttpRequest, total: Decimal, order: Order=None) -> str:
|
||||
"""
|
||||
When the user selects this provider as their preferred payment method,
|
||||
they will be shown the HTML you return from this method.
|
||||
@@ -522,13 +522,15 @@ class BasePaymentProvider:
|
||||
and render the returned form. If your payment method doesn't require
|
||||
the user to fill out form fields, you should just return a paragraph
|
||||
of explanatory text.
|
||||
|
||||
:param order: Only set when this is a change to a new payment method for an existing order.
|
||||
"""
|
||||
form = self.payment_form(request)
|
||||
template = get_template('pretixpresale/event/checkout_payment_form_default.html')
|
||||
ctx = {'request': request, 'form': form}
|
||||
return template.render(ctx)
|
||||
|
||||
def checkout_confirm_render(self, request) -> str:
|
||||
def checkout_confirm_render(self, request, order: Order=None) -> str:
|
||||
"""
|
||||
If the user has successfully filled in their payment data, they will be redirected
|
||||
to a confirmation page which lists all details of their order for a final review.
|
||||
@@ -537,6 +539,8 @@ class BasePaymentProvider:
|
||||
|
||||
In most cases, this should include a short summary of the user's input and
|
||||
a short explanation on how the payment process will continue.
|
||||
|
||||
:param order: Only set when this is a change to a new payment method for an existing order.
|
||||
"""
|
||||
raise NotImplementedError() # NOQA
|
||||
|
||||
|
||||
@@ -155,12 +155,13 @@ class BankTransfer(BasePaymentProvider):
|
||||
{'payment_banktransfer_bank_details': _('Please enter your bank account details.')})
|
||||
return cleaned_data
|
||||
|
||||
def payment_form_render(self, request) -> str:
|
||||
def payment_form_render(self, request, total=None, order=None) -> str:
|
||||
template = get_template('pretixplugins/banktransfer/checkout_payment_form.html')
|
||||
ctx = {
|
||||
'request': request,
|
||||
'event': self.event,
|
||||
'settings': self.settings,
|
||||
'code': self._code(order) if order else None,
|
||||
'details': self.settings.get('bank_details', as_type=LazyI18nString),
|
||||
}
|
||||
return template.render(ctx)
|
||||
@@ -174,8 +175,8 @@ class BankTransfer(BasePaymentProvider):
|
||||
def payment_is_valid_session(self, request):
|
||||
return True
|
||||
|
||||
def checkout_confirm_render(self, request):
|
||||
return self.payment_form_render(request)
|
||||
def checkout_confirm_render(self, request, order=None):
|
||||
return self.payment_form_render(request, order=order)
|
||||
|
||||
def order_pending_mail_render(self, order, payment) -> str:
|
||||
template = get_template('pretixplugins/banktransfer/email/order_pending.txt')
|
||||
|
||||
@@ -16,7 +16,11 @@
|
||||
{% if details %}
|
||||
{{ details|linebreaksbr }}<br>
|
||||
{% endif %}
|
||||
<strong>
|
||||
{% trans "We will assign you a personal reference code to use after you completed the order." %}
|
||||
</strong>
|
||||
{% if code %}
|
||||
<strong>{% trans "Reference code (important):" %} {{ code }}</strong>
|
||||
{% else %}
|
||||
<strong>
|
||||
{% trans "We will assign you a personal reference code to use after you completed the order." %}
|
||||
</strong>
|
||||
{% endif %}
|
||||
</address>
|
||||
|
||||
@@ -416,7 +416,10 @@ class OrderPaymentConfirm(EventViewMixin, OrderDetailMixin, TemplateView):
|
||||
ctx = super().get_context_data(**kwargs)
|
||||
ctx['order'] = self.order
|
||||
ctx['payment'] = self.payment
|
||||
ctx['payment_info'] = self.payment.payment_provider.checkout_confirm_render(self.request)
|
||||
if 'order' in inspect.signature(self.payment.payment_provider.checkout_confirm_render).parameters:
|
||||
ctx['payment_info'] = self.payment.payment_provider.checkout_confirm_render(self.request, order=self.order)
|
||||
else:
|
||||
ctx['payment_info'] = self.payment.payment_provider.checkout_confirm_render(self.request)
|
||||
ctx['payment_provider'] = self.payment.payment_provider
|
||||
return ctx
|
||||
|
||||
@@ -568,7 +571,9 @@ class OrderPayChangeMethod(EventViewMixin, OrderDetailMixin, TemplateView):
|
||||
continue
|
||||
current_fee = sum(f.value for f in self.open_fees) or Decimal('0.00')
|
||||
fee = provider.calculate_fee(pending_sum - current_fee)
|
||||
if 'total' in inspect.signature(provider.payment_form_render).parameters:
|
||||
if 'order' in inspect.signature(provider.payment_form_render).parameters:
|
||||
form = provider.payment_form_render(self.request, abs(pending_sum + fee - current_fee), order=self.order)
|
||||
elif 'total' in inspect.signature(provider.payment_form_render).parameters:
|
||||
form = provider.payment_form_render(self.request, abs(pending_sum + fee - current_fee))
|
||||
else:
|
||||
form = provider.payment_form_render(self.request)
|
||||
|
||||
Reference in New Issue
Block a user