diff --git a/src/pretix/base/forms/__init__.py b/src/pretix/base/forms/__init__.py index 7bd123b736..5ac5d2c4a1 100644 --- a/src/pretix/base/forms/__init__.py +++ b/src/pretix/base/forms/__init__.py @@ -51,9 +51,9 @@ class SettingsForm(i18nfield.forms.I18nFormMixin, HierarkeyForm): def __init__(self, *args, **kwargs): self.obj = kwargs.get('obj', None) - self.locales = kwargs.pop('locales', None) + self.locales = self.obj.settings.get('locales') if self.obj else kwargs.pop('locales', None) kwargs['attribute_name'] = 'settings' - kwargs['locales'] = self.obj.settings.get('locales') if self.obj else self.locales + kwargs['locales'] = self.locales kwargs['initial'] = self.obj.settings.freeze() super().__init__(*args, **kwargs) diff --git a/src/pretix/control/forms/event.py b/src/pretix/control/forms/event.py index 946bc0fb99..0a7e3c1aed 100644 --- a/src/pretix/control/forms/event.py +++ b/src/pretix/control/forms/event.py @@ -374,7 +374,7 @@ class ProviderForm(SettingsForm): if isinstance(v, I18nFormField): v._required = v.one_required v.one_required = False - v.widget.enabled_langcodes = self.obj.settings.get('locales') + v.widget.enabled_locales = self.locales def clean(self): cleaned_data = super().clean() @@ -631,6 +631,10 @@ class TicketSettingsForm(SettingsForm): v._required = v.required v.required = False v.widget.is_required = False + if isinstance(v, I18nFormField): + v._required = v.one_required + v.one_required = False + v.widget.enabled_locales = self.locales def clean(self): # required=True files should only be required if the feature is enabled