From 5a68eb345f486960116bd7d805906b6c0468043c Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Fri, 21 Apr 2017 14:26:19 +0200 Subject: [PATCH] Fix broken language field filtering in payment settings --- src/pretix/base/forms/__init__.py | 4 ++-- src/pretix/control/forms/event.py | 6 +++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/pretix/base/forms/__init__.py b/src/pretix/base/forms/__init__.py index 7bd123b73..5ac5d2c4a 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 946bc0fb9..0a7e3c1ae 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