mirror of
https://github.com/pretix/pretix.git
synced 2026-05-08 15:44:02 +00:00
Allow to add declaration of accessibility (#5140)
* Allow to add declaration of accessibility * add fallback for empty accessibility_title * unify label format (not "Title for") * move title to top and set helptext before text --------- Co-authored-by: Richard Schreiber <schreiber@rami.io>
This commit is contained in:
@@ -426,6 +426,9 @@ class OrganizerSettingsSerializer(SettingsSerializer):
|
||||
'organizer_logo_image_inherit',
|
||||
'organizer_logo_image',
|
||||
'privacy_url',
|
||||
'accessibility_url',
|
||||
'accessibility_title',
|
||||
'accessibility_text',
|
||||
'cookie_consent',
|
||||
'cookie_consent_dialog_title',
|
||||
'cookie_consent_dialog_text',
|
||||
|
||||
@@ -2063,6 +2063,38 @@ DEFAULTS = {
|
||||
),
|
||||
'serializer_class': I18nURLField,
|
||||
},
|
||||
'accessibility_url': {
|
||||
'default': None,
|
||||
'type': LazyI18nString,
|
||||
'form_class': I18nURLFormField,
|
||||
'form_kwargs': dict(
|
||||
label=_("Accessibility information URL"),
|
||||
help_text=_("This should point e.g. to a part of your website that explains how your ticket shop complies "
|
||||
"with accessibility regulation."),
|
||||
widget=I18nTextInput,
|
||||
),
|
||||
'serializer_class': I18nURLField,
|
||||
},
|
||||
'accessibility_title': {
|
||||
'default': LazyI18nString.from_gettext(gettext_noop("Accessibility information")),
|
||||
'type': LazyI18nString,
|
||||
'form_class': I18nFormField,
|
||||
'form_kwargs': dict(
|
||||
label=_("Accessibility information title"),
|
||||
widget=I18nTextInput,
|
||||
),
|
||||
'serializer_class': I18nURLField,
|
||||
},
|
||||
'accessibility_text': {
|
||||
'default': None,
|
||||
'type': LazyI18nString,
|
||||
'form_class': I18nFormField,
|
||||
'form_kwargs': dict(
|
||||
label=_("Accessibility information text"),
|
||||
widget=I18nMarkdownTextarea,
|
||||
),
|
||||
'serializer_class': I18nURLField,
|
||||
},
|
||||
'confirm_texts': {
|
||||
'default': LazyI18nStringList(),
|
||||
'type': LazyI18nStringList,
|
||||
|
||||
@@ -73,6 +73,7 @@ class EventSlugBanlistValidator(BanlistValidator):
|
||||
'customer',
|
||||
'account',
|
||||
'lead',
|
||||
'accessibility',
|
||||
]
|
||||
|
||||
|
||||
|
||||
@@ -498,6 +498,9 @@ class OrganizerSettingsForm(SettingsForm):
|
||||
'theme_round_borders',
|
||||
'primary_font',
|
||||
'privacy_url',
|
||||
'accessibility_url',
|
||||
'accessibility_title',
|
||||
'accessibility_text',
|
||||
'cookie_consent',
|
||||
'cookie_consent_dialog_title',
|
||||
'cookie_consent_dialog_text',
|
||||
|
||||
@@ -200,6 +200,24 @@
|
||||
{% bootstrap_field sform.cookie_consent_dialog_button_yes layout="control" %}
|
||||
{% bootstrap_field sform.cookie_consent_dialog_button_no layout="control" %}
|
||||
</fieldset>
|
||||
<fieldset id="tab-organizer-accessibility">
|
||||
<legend>{% trans "Accessibility" %}</legend>
|
||||
<div class="alert alert-legal">
|
||||
{% blocktrans trimmed with a_href="https://docs.pretix.eu/trust/accessibility/" %}
|
||||
Some jurisdictions, including the European Union, require you to publish information
|
||||
about the accessibility of your ticket shop. You can find a template in
|
||||
<a href="https://docs.pretix.eu/trust/accessibility/" target="_blank">our documentation</a>.
|
||||
{% endblocktrans %}
|
||||
</div>
|
||||
{% bootstrap_field sform.accessibility_title layout="control" %}
|
||||
{% bootstrap_field sform.accessibility_url layout="control" %}
|
||||
<div class="row">
|
||||
<div class="col-md-9 col-md-offset-3">
|
||||
<p class="text-muted">{% trans "Instead of an URL, you can also configure a text that will be shown within pretix. This will be ignored if a URL is configured." %}</p>
|
||||
</div>
|
||||
</div>
|
||||
{% bootstrap_field sform.accessibility_text layout="control" %}
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>{% trans "Reusable media" %}</legend>
|
||||
{% bootstrap_field sform.reusable_media_active layout="control" %}
|
||||
|
||||
@@ -224,6 +224,17 @@
|
||||
{% if request.event.settings.privacy_url %}
|
||||
<li><a href="{% safelink request.event.settings.privacy_url %}" target="_blank" rel="noopener">{% trans "Privacy policy" %}</a></li>
|
||||
{% endif %}
|
||||
{% if request.event.settings.accessibility_url %}
|
||||
{% trans "Accessibility information" as accessibility_title %}
|
||||
<li><a href="{% safelink request.event.settings.accessibility_url %}" target="_blank" rel="noopener">
|
||||
{{ request.event.settings.accessibility_title|default:accessibility_title }}
|
||||
</a></li>
|
||||
{% elif request.event.settings.accessibility_text %}
|
||||
{% trans "Accessibility information" as accessibility_title %}
|
||||
<li><a href="{% abseventurl request.organizer "presale:organizer.accessibility" %}" target="_blank" rel="noopener">
|
||||
{{ request.event.settings.accessibility_title|default:accessibility_title }}
|
||||
</a></li>
|
||||
{% endif %}
|
||||
{% if request.event.settings.cookie_consent and cookie_providers %}
|
||||
<li><button type="button" class="btn btn-link" id="cookie-consent-reopen">{% trans "Cookie settings" %}</button></li>
|
||||
{% endif %}
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
{% extends "pretixpresale/organizers/base.html" %}
|
||||
{% load i18n %}
|
||||
{% load rich_text %}
|
||||
{% block title %}{{ request.organizer.settings.accessibility_title }}{% endblock %}
|
||||
{% block content %}
|
||||
{% trans "Accessibility information" as accessibility_title %}
|
||||
<h2>{{ request.organizer.settings.accessibility_title|default:accessibility_title }}</h2>
|
||||
{{ request.organizer.settings.accessibility_text|rich_text }}
|
||||
{% endblock %}
|
||||
@@ -102,6 +102,17 @@
|
||||
{% if not request.event and request.organizer.settings.privacy_url %}
|
||||
<li><a href="{% safelink request.organizer.settings.privacy_url %}" target="_blank" rel="noopener">{% trans "Privacy policy" %}</a></li>
|
||||
{% endif %}
|
||||
{% if request.organizer.settings.accessibility_url %}
|
||||
{% trans "Accessibility information" as accessibility_title %}
|
||||
<li><a href="{% safelink request.organizer.settings.accessibility_url %}" target="_blank" rel="noopener">
|
||||
{{ request.organizer.settings.accessibility_title|default:accessibility_title }}
|
||||
</a></li>
|
||||
{% elif request.organizer.settings.accessibility_text %}
|
||||
{% trans "Accessibility information" as accessibility_title %}
|
||||
<li><a href="{% abseventurl request.organizer "presale:organizer.accessibility" %}" target="_blank" rel="noopener">
|
||||
{{ request.organizer.settings.accessibility_title|default:accessibility_title }}
|
||||
</a></li>
|
||||
{% endif %}
|
||||
{% if not request.event and request.organizer.settings.cookie_consent and cookie_providers %}
|
||||
<li><button type="button" class="btn btn-link" id="cookie-consent-reopen">{% trans "Cookie settings" %}</button></li>
|
||||
{% endif %}
|
||||
|
||||
@@ -199,6 +199,7 @@ organizer_patterns = [
|
||||
re_path(r'^widget/v1.css$', pretix.presale.views.widget.widget_css, name='organizer.widget.css'),
|
||||
|
||||
re_path(r'^theme.css$', pretix.presale.views.theme.theme_css, name='organizer.theme.css'),
|
||||
re_path(r'^accessibility$', pretix.presale.views.organizer.AccessibilityView.as_view(), name='organizer.accessibility'),
|
||||
|
||||
re_path(r'^account/login/(?P<provider>[0-9]+)/$', pretix.presale.views.customer.SSOLoginView.as_view(), name='organizer.customer.login'),
|
||||
re_path(r'^account/login/(?P<provider>[0-9]+)/return$', pretix.presale.views.customer.SSOLoginReturnView.as_view(), name='organizer.customer.login.return'),
|
||||
|
||||
@@ -1311,3 +1311,14 @@ class OrganizerFavicon(View):
|
||||
class RedirectToOrganizerIndex(View):
|
||||
def get(self, *args, **kwargs):
|
||||
return redirect_to_url(build_absolute_uri(self.request.organizer, "presale:organizer.index"))
|
||||
|
||||
|
||||
class AccessibilityView(OrganizerViewMixin, EventListMixin, TemplateView):
|
||||
template_name = 'pretixpresale/organizers/accessibility.html'
|
||||
|
||||
def dispatch(self, request, *args, **kwargs):
|
||||
if self.request.organizer.settings.accessibility_url:
|
||||
raise Http404()
|
||||
if not self.request.organizer.settings.accessibility_text:
|
||||
raise Http404()
|
||||
return super().dispatch(request, *args, **kwargs)
|
||||
|
||||
Reference in New Issue
Block a user