From d8adfdd06f97744517cadb535402ceb61492d607 Mon Sep 17 00:00:00 2001 From: Mira Weller Date: Mon, 2 Dec 2024 13:23:22 +0100 Subject: [PATCH] Fix backend validation if name is required as part of a required non-business invoice address --- src/pretix/base/forms/questions.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/pretix/base/forms/questions.py b/src/pretix/base/forms/questions.py index 711159b14..29bdfab54 100644 --- a/src/pretix/base/forms/questions.py +++ b/src/pretix/base/forms/questions.py @@ -1149,12 +1149,12 @@ class BaseInvoiceAddressForm(forms.ModelForm): data['vat_id'] = '' if data.get('is_business') and not ask_for_vat_id(data.get('country')): data['vat_id'] = '' - if self.event.settings.invoice_address_required: + if self.address_validation and self.event.settings.invoice_address_required and not self.all_optional: if data.get('is_business') and not data.get('company'): raise ValidationError({"company": _('You need to provide a company name.')}) - if not data.get('is_business') and not data.get('name_parts'): + if not data.get('is_business') and len(data.get('name_parts', {})) <= 1: raise ValidationError(_('You need to provide your name.')) - if not self.all_optional and 'street' in self.fields and not data.get('street') and not data.get('zipcode') and not data.get('city'): + if not data.get('street') and not data.get('zipcode') and not data.get('city'): raise ValidationError({"street": _('This field is required.')}) if 'vat_id' in self.changed_data or not data.get('vat_id'): @@ -1167,7 +1167,7 @@ class BaseInvoiceAddressForm(forms.ModelForm): if all( not v for k, v in data.items() if k not in ('is_business', 'country', 'name_parts') - ) and len(data.get('name_parts', {})) == 1: + ) and len(data.get('name_parts', {})) <= 1: # Do not save the country if it is the only field set -- we don't know the user even checked it! self.cleaned_data['country'] = ''