diff --git a/src/pretix/base/invoicing/email.py b/src/pretix/base/invoicing/email.py index 8bc6a3e54f..ea75ac0b17 100644 --- a/src/pretix/base/invoicing/email.py +++ b/src/pretix/base/invoicing/email.py @@ -82,6 +82,14 @@ class EmailTransmissionType(TransmissionType): } return {} + def describe_invoice_destination(self, invoice): + info = (invoice.invoice_to_transmission_info or {}) + if info.get("transmission_email_address"): + recipient = info["transmission_email_address"] + else: + recipient = invoice.order.email + return _("Via Email to {recipient}").format(recipient=recipient) + @transmission_providers.new() class EmailTransmissionProvider(TransmissionProvider): diff --git a/src/pretix/base/invoicing/transmission.py b/src/pretix/base/invoicing/transmission.py index a82bef73b2..d8cc21e15f 100644 --- a/src/pretix/base/invoicing/transmission.py +++ b/src/pretix/base/invoicing/transmission.py @@ -123,6 +123,19 @@ class TransmissionType: data.append((f.label, v)) return data + def describe_invoice_destination(self, invoice): + info = self.describe_info( + invoice.invoice_to_transmission_info or {}, + invoice.invoice_to_country, + invoice.invoice_to_is_business, + ) + destination = ", ".join(f"{k}: {v}" for (k, v) in info) + return "{via} {method}{destination}".format( + via=_("Via"), + method=self.verbose_name, + destination=f" ({destination})" if destination else "", + ) + def pdf_watermark(self) -> Optional[str]: """ Return a watermark that should be rendered across the PDF file. diff --git a/src/pretix/base/models/invoices.py b/src/pretix/base/models/invoices.py index d0787b7321..2389fe80e5 100644 --- a/src/pretix/base/models/invoices.py +++ b/src/pretix/base/models/invoices.py @@ -398,6 +398,10 @@ class Invoice(models.Model): from pretix.base.invoicing.transmission import transmission_types return transmission_types.get(identifier=self.transmission_type)[0] + @property + def transmission_type_destination_description(self): + return self.transmission_type_instance.describe_invoice_destination(self) + def set_transmission_failed(self, provider, data): self.transmission_status = Invoice.TRANSMISSION_STATUS_FAILED self.transmission_date = now() diff --git a/src/pretix/control/templates/pretixcontrol/order/index.html b/src/pretix/control/templates/pretixcontrol/order/index.html index 88276398e3..11f94205e3 100644 --- a/src/pretix/control/templates/pretixcontrol/order/index.html +++ b/src/pretix/control/templates/pretixcontrol/order/index.html @@ -357,7 +357,7 @@ action="{% url "control:event.order.retransmitinvoice" event=request.event.slug organizer=request.event.organizer.slug code=order.code id=i.pk %}"> {% csrf_token %}