Skip to content
Snippets Groups Projects
Commit b3d47fc3 authored by Felix Schäfer's avatar Felix Schäfer :construction_worker:
Browse files

Add a settings view

parent 1fe1e4f2
No related branches found
No related tags found
No related merge requests found
from django import forms
from django.utils.translation import ugettext_lazy as _
from pretix.base.forms import SettingsForm
class PublicRegistrationsForm(SettingsForm):
public_registrations_items = forms.MultipleChoiceField(
widget=forms.CheckboxSelectMultiple(
attrs={'class': 'scrolling-multiple-choice'}
),
label=_('Show public registrations for'),
required=True,
choices=[],
)
public_registrations_questions = forms.MultipleChoiceField(
widget=forms.CheckboxSelectMultiple(
attrs={'class': 'scrolling-multiple-choice'}
),
label=_('Publicly show answers for'),
required=True,
choices=[],
)
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields['public_registrations_items'].choices = [
(i.pk, i.name) for i in self.obj.items.all()
]
self.fields['public_registrations_questions'].choices = [
(q.pk, q.question) for q in self.obj.questions.all()
]
......@@ -2,10 +2,11 @@ from django import forms
from django.dispatch import receiver
from django.template.loader import get_template
from django.utils.translation import ugettext_lazy as _, get_language
from django.urls import resolve
from django.urls import resolve, reverse
from django_gravatar.helpers import get_gravatar_url
from i18nfield.strings import LazyI18nString
from pretix.presale.signals import question_form_fields, front_page_bottom, process_response, html_head
from pretix.control.signals import nav_event_settings
from pretix.base.models import OrderPosition
......@@ -64,3 +65,16 @@ def add_public_registrations_csp_headers(sender, request=None, response=None, **
if "event.index" in resolve(request.path_info).url_name:
response['Content-Security-Policy'] = "img-src https://secure.gravatar.com"
return response
@receiver(signal=nav_event_settings, dispatch_uid="public_registrations_nav_settings")
def navbar_settings(sender, request=None, **kwargs):
url = resolve(request.path_info)
return [{
'label': _('Public registrations'),
'url': reverse('plugins:pretix_public_registrations:settings', kwargs={
'event': request.event.slug,
'organizer': request.organizer.slug,
}),
'active': url.namespace == 'plugins:pretix_public_registrations' and url.url_name == 'settings',
}]
{% extends "pretixcontrol/event/settings_base.html" %}
{% load i18n %}
{% load bootstrap3 %}
{% block title %} {% trans "Public registrations settings" %} {% endblock %}
{% block inside %}
<h1>{% trans "Public registrations settings" %}</h1>
<form action="" method="post" class="form-horizontal">
{% csrf_token %}
{% bootstrap_form_errors form %}
<fieldset>
{% bootstrap_form form layout="horizontal" %}
</fieldset>
<div class="form-group submit-group">
<button type="submit" class="btn btn-primary btn-save">
{% trans "Save" %}
</button>
</div>
</form>
{% endblock %}
from django.conf.urls import url
from .views import PublicParticipationsView
urlpatterns = [
url(r'^control/event/(?P<organizer>[^/]+)/(?P<event>[^/]+)/public_participations/$', PublicParticipationsView.as_view(), name='settings')
]
from django.urls import reverse
from pretix.control.views.event import EventSettingsViewMixin, EventSettingsFormView
from pretix.base.models import Event
from .forms import PublicRegistrationsForm
class PublicParticipationsView(EventSettingsViewMixin, EventSettingsFormView):
form_class = PublicRegistrationsForm
template_name = 'pretix_public_registrations/settings.html'
def get_success_url(self, **kwargs):
return reverse('plugins:pretix_public_registrations:settings', kwargs={
'organizer': self.request.event.organizer.slug,
'event': self.request.event.slug,
})
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment