diff --git a/src/pretix/base/settings.py b/src/pretix/base/settings.py index 6215a5c7f5..d9ea658956 100644 --- a/src/pretix/base/settings.py +++ b/src/pretix/base/settings.py @@ -486,7 +486,15 @@ Your {event} team""")) 'update_check_id': { 'default': None, 'type': str - } + }, + 'banner_message': { + 'default': '', + 'type': LazyI18nString + }, + 'banner_message_detail': { + 'default': '', + 'type': LazyI18nString + }, } settings_hierarkey = Hierarkey(attribute_name='settings') diff --git a/src/pretix/control/context.py b/src/pretix/control/context.py index 42fe70b280..1aa21026dd 100644 --- a/src/pretix/control/context.py +++ b/src/pretix/control/context.py @@ -91,8 +91,9 @@ def contextprocessor(request): ctx['warning_update_available'] = False ctx['warning_update_check_active'] = False + gs = GlobalSettingsObject() + ctx['global_settings'] = gs.settings if request.user.is_superuser: - gs = GlobalSettingsObject() if gs.settings.update_check_result_warning: ctx['warning_update_available'] = True if not gs.settings.update_check_ack and 'runserver' not in sys.argv: diff --git a/src/pretix/control/forms/global_settings.py b/src/pretix/control/forms/global_settings.py index 63c3d34bbd..80c551f8bc 100644 --- a/src/pretix/control/forms/global_settings.py +++ b/src/pretix/control/forms/global_settings.py @@ -2,7 +2,7 @@ from collections import OrderedDict from django import forms from django.utils.translation import ugettext_lazy as _ -from i18nfield.forms import I18nFormField, I18nTextInput +from i18nfield.forms import I18nFormField, I18nTextarea, I18nTextInput from pretix.base.forms import SettingsForm from pretix.base.settings import GlobalSettingsObject @@ -26,7 +26,17 @@ class GlobalSettingsForm(SettingsForm): required=False, label=_("Additional footer link"), help_text=_("Will be included as the link in the additional footer text.") - )) + )), + ('banner_message', I18nFormField( + widget=I18nTextarea, + required=False, + label=_("Global message banner"), + )), + ('banner_message_detail', I18nFormField( + widget=I18nTextarea, + required=False, + label=_("Global message banner detail text"), + )), ]) responses = register_global_settings.send(self) for r, response in sorted(responses, key=lambda r: str(r[0])): @@ -34,6 +44,9 @@ class GlobalSettingsForm(SettingsForm): # We need to be this explicit, since OrderedDict.update does not retain ordering self.fields[key] = value + self.fields['banner_message'].widget.attrs['rows'] = '2' + self.fields['banner_message_detail'].widget.attrs['rows'] = '3' + class UpdateSettingsForm(SettingsForm): update_check_perform = forms.BooleanField( diff --git a/src/pretix/control/templates/pretixcontrol/base.html b/src/pretix/control/templates/pretixcontrol/base.html index dcd47d7eaf..b956916dd0 100644 --- a/src/pretix/control/templates/pretixcontrol/base.html +++ b/src/pretix/control/templates/pretixcontrol/base.html @@ -272,6 +272,17 @@ {% endif %} + {% if global_settings.banner_message %} +