From 2eb9ab6d6de238916e4b513088d8a44e4b8028ae Mon Sep 17 00:00:00 2001 From: Mira Weller Date: Thu, 9 Oct 2025 19:19:41 +0200 Subject: [PATCH] Use the transmission info transformation methods Use form_data_to_transmission_info and transmission_info_to_form_data to convert between database representation and form data --- src/pretix/base/forms/questions.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/pretix/base/forms/questions.py b/src/pretix/base/forms/questions.py index be8811d340..7b9f48986e 100644 --- a/src/pretix/base/forms/questions.py +++ b/src/pretix/base/forms/questions.py @@ -77,7 +77,7 @@ from pretix.base.forms.widgets import ( from pretix.base.i18n import ( get_babel_locale, get_language_without_region, language, ) -from pretix.base.invoicing.transmission import get_transmission_types +from pretix.base.invoicing.transmission import get_transmission_types, transmission_types from pretix.base.models import InvoiceAddress, Item, Question, QuestionOption from pretix.base.models.tax import ask_for_vat_id from pretix.base.services.tax import ( @@ -1142,9 +1142,11 @@ class BaseInvoiceAddressForm(forms.ModelForm): if (not kwargs.get('instance') or not kwargs['instance'].country) and not kwargs["initial"].get("country"): kwargs['initial']['country'] = guess_country_from_request(self.request, self.event) - if kwargs.get('instance'): - kwargs['initial'].update(kwargs['instance'].transmission_info or {}) - kwargs['initial']['transmission_type'] = kwargs['instance'].transmission_type + if kwargs.get('instance') and kwargs['instance'].transmission_type: + ttype, meta = transmission_types.get(identifier=kwargs['instance'].transmission_type) + if ttype: + kwargs['initial'].update(ttype.transmission_info_to_form_data(kwargs['instance'].transmission_info or {})) + kwargs['initial']['transmission_type'] = ttype.identifier super().__init__(*args, **kwargs) @@ -1394,9 +1396,7 @@ class BaseInvoiceAddressForm(forms.ModelForm): raise ValidationError({r: _("This field is required for the selected type of invoice transmission.")}) self.instance.transmission_type = transmission_type.identifier - self.instance.transmission_info = { - k: data.get(k) for k in transmission_type.invoice_address_form_fields - } + self.instance.transmission_info = transmission_type.form_data_to_transmission_info(data) elif transmission_type.exclusive: if transmission_type.is_available(self.event, data.get("country"), data.get("is_business")): raise ValidationError({