diff --git a/src/pretix/base/models/event.py b/src/pretix/base/models/event.py
index 465e5a9671..904b0d79ef 100644
--- a/src/pretix/base/models/event.py
+++ b/src/pretix/base/models/event.py
@@ -162,7 +162,11 @@ class Event(LoggedModel):
"""
Returns an object representing this event's settings
"""
- return SettingsProxy(self, type=EventSetting, parent=self.organizer)
+ try:
+ return SettingsProxy(self, type=EventSetting, parent=self.organizer)
+ except Organizer.DoesNotExist:
+ # Should only happen when creating new events
+ return SettingsProxy(self, type=EventSetting)
@property
def presale_has_ended(self):
diff --git a/src/pretix/control/forms/event.py b/src/pretix/control/forms/event.py
index dcbd147b91..3a7ad1add1 100644
--- a/src/pretix/control/forms/event.py
+++ b/src/pretix/control/forms/event.py
@@ -40,6 +40,29 @@ class EventCreateForm(I18nModelForm):
return slug
+class EventCreateSettingsForm(SettingsForm):
+ timezone = forms.ChoiceField(
+ choices=((a, a) for a in common_timezones),
+ label=_("Default timezone"),
+ )
+ locales = forms.MultipleChoiceField(
+ choices=settings.LANGUAGES,
+ label=_("Available langauges"),
+ )
+ locale = forms.ChoiceField(
+ choices=settings.LANGUAGES,
+ label=_("Default language"),
+ )
+
+ def clean(self):
+ data = super().clean()
+ if data['locale'] not in data['locales']:
+ raise ValidationError({
+ 'locale': _('Your default locale must also be enebled for your event (see box above).')
+ })
+ return data
+
+
class EventUpdateForm(I18nModelForm):
def clean_slug(self):
return self.instance.slug
diff --git a/src/pretix/control/templates/pretixcontrol/events/create.html b/src/pretix/control/templates/pretixcontrol/events/create.html
index 45cc51bed4..64ef36a80c 100644
--- a/src/pretix/control/templates/pretixcontrol/events/create.html
+++ b/src/pretix/control/templates/pretixcontrol/events/create.html
@@ -15,6 +15,12 @@
{% bootstrap_field form.date_to layout="horizontal" %}
{% bootstrap_field form.currency layout="horizontal" %}
+