From 8dbc7ac5d74d89ae453bf3967223220596b3cb8e Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Fri, 8 Sep 2023 14:11:45 +0200 Subject: [PATCH] Bank transfer: Hide email form if email was already sent (Z#23128941) (#3570) Co-authored-by: Mira --- src/pretix/plugins/banktransfer/payment.py | 1 + .../pretixplugins/banktransfer/pending.html | 15 ++++++++++++++- src/pretix/plugins/banktransfer/views.py | 6 ++++++ 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/pretix/plugins/banktransfer/payment.py b/src/pretix/plugins/banktransfer/payment.py index e20bb8eff5..b53bb5e9a6 100644 --- a/src/pretix/plugins/banktransfer/payment.py +++ b/src/pretix/plugins/banktransfer/payment.py @@ -530,6 +530,7 @@ class BankTransfer(BasePaymentProvider): 'code': self._code(payment.order), 'order': payment.order, 'amount': payment.amount, + 'payment_info': payment.info_data, 'settings': self.settings, 'swiss_qrbill': self.swiss_qrbill(payment), 'eu_barcodes': self.event.currency == 'EUR', diff --git a/src/pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/pending.html b/src/pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/pending.html index e7ab5660c8..02b5897fe2 100644 --- a/src/pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/pending.html +++ b/src/pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/pending.html @@ -106,7 +106,20 @@ SCT {% endif %} {% if invoice_email_enabled and has_invoices %} -
+ {% if payment_info.send_invoice_to %} +

+ {% blocktrans trimmed with recipient=payment_info.send_invoice_to %} + At your request, we sent the invoice directly to {{ recipient }}. + {% endblocktrans %} + + + {% trans "Send again or somewhere else" %} + +

+ {% endif %} + {% csrf_token %}

{% blocktrans trimmed %} diff --git a/src/pretix/plugins/banktransfer/views.py b/src/pretix/plugins/banktransfer/views.py index e4598fa656..ea5d9acecc 100644 --- a/src/pretix/plugins/banktransfer/views.py +++ b/src/pretix/plugins/banktransfer/views.py @@ -923,5 +923,11 @@ class SendInvoiceMailView(EventViewMixin, OrderDetailMixin, View): provider = last_payment.payment_provider provider.send_invoice_to_alternate_email(self.order, last_invoice, request.POST['email']) + last_payment.info_data = { + **last_payment.info_data, + 'send_invoice_to': request.POST['email'], + } + last_payment.save(update_fields=['info']) + messages.success(request, _('Sending the latest invoice via e-mail to {email}.').format(email=request.POST['email'])) return redirect(self.get_order_url())