+ {% blocktrans trimmed %}
+ Questions allow your attendees to fill in additional data about their ticket. If you provide food, one
+ example might be to ask your users about dietary requirements.
+ {% endblocktrans %}
+
+
+
+
+
+
+ {% vite_hmr %}
+ {% vite_asset "src/pretix/static/pretixcontrol/js/ui/questionnaires/index.ts" %}
+{% endblock %}
\ No newline at end of file
diff --git a/src/pretix/control/urls.py b/src/pretix/control/urls.py
index 35c659fd3..55ff33618 100644
--- a/src/pretix/control/urls.py
+++ b/src/pretix/control/urls.py
@@ -348,6 +348,7 @@ urlpatterns = [
re_path(r'^questions/(?P\d+)/change$', item.QuestionUpdate.as_view(),
name='event.items.questions.edit'),
re_path(r'^questions/add$', item.QuestionCreate.as_view(), name='event.items.questions.add'),
+ re_path(r'^questionnaires/$', item.QuestionnairesEditor.as_view(), name='event.items.questionnaires'),
re_path(r'^quotas/$', item.QuotaList.as_view(), name='event.items.quotas'),
re_path(r'^quotas/(?P\d+)/$', item.QuotaView.as_view(), name='event.items.quotas.show'),
re_path(r'^quotas/select$', typeahead.quotas_select2, name='event.items.quotas.select2'),
diff --git a/src/pretix/control/views/item.py b/src/pretix/control/views/item.py
index 179b8cd09..6a22e5ebd 100644
--- a/src/pretix/control/views/item.py
+++ b/src/pretix/control/views/item.py
@@ -55,7 +55,7 @@ from django.utils.functional import cached_property
from django.utils.timezone import now
from django.utils.translation import gettext, gettext_lazy as _
from django.views.decorators.http import require_http_methods
-from django.views.generic import ListView
+from django.views.generic import ListView, TemplateView
from django.views.generic.detail import DetailView, SingleObjectMixin
from django_countries.fields import Country
@@ -831,6 +831,11 @@ class QuestionCreate(EventPermissionRequiredMixin, QuestionMixin, CreateView):
return ret
+class QuestionnairesEditor(EventPermissionRequiredMixin, TemplateView):
+ permission = 'can_change_items'
+ template_name = 'pretixcontrol/items/questionnaires.html'
+
+
class QuotaList(PaginationMixin, ListView):
model = Quota
context_object_name = 'quotas'
diff --git a/src/pretix/static/pretixcontrol/js/ui/questionnaires/App.vue b/src/pretix/static/pretixcontrol/js/ui/questionnaires/App.vue
new file mode 100644
index 000000000..52a1f69a3
--- /dev/null
+++ b/src/pretix/static/pretixcontrol/js/ui/questionnaires/App.vue
@@ -0,0 +1,74 @@
+
+
+
+
+
+