From ea613bf27128af47c1148d495df45a3aa33140de Mon Sep 17 00:00:00 2001 From: Mira Weller Date: Fri, 7 Aug 2026 21:21:35 +0200 Subject: [PATCH] wip --- src/pretix/base/views/mixins.py | 14 +++ .../pretixcontrol/items/questionnaires.html | 5 +- .../event/checkout_questions.html | 12 +++ .../js/ui/questionnaires/App.vue | 100 ++++++++++-------- .../questionnaires/QuestionnaireElement.vue | 4 +- 5 files changed, 86 insertions(+), 49 deletions(-) diff --git a/src/pretix/base/views/mixins.py b/src/pretix/base/views/mixins.py index 8bde275fc7..9dec514553 100644 --- a/src/pretix/base/views/mixins.py +++ b/src/pretix/base/views/mixins.py @@ -56,6 +56,20 @@ class BaseQuestionsViewMixin: def question_form_kwargs(self, cr): return {} + @cached_property + def order_questions_form(self): + kwargs = {} # self.question_form_kwargs(cr) + form = self.form_class(event=self.request.event, + prefix='order', + request=self.request, + cartpos=None, + orderpos=None, + all_optional=self.all_optional, + data=(self.request.POST if self.request.method == 'POST' else None), + files=(self.request.FILES if self.request.method == 'POST' else None), + **kwargs) + return form + @cached_property def forms(self): """ diff --git a/src/pretix/control/templates/pretixcontrol/items/questionnaires.html b/src/pretix/control/templates/pretixcontrol/items/questionnaires.html index 61b26276eb..46f3e814b9 100644 --- a/src/pretix/control/templates/pretixcontrol/items/questionnaires.html +++ b/src/pretix/control/templates/pretixcontrol/items/questionnaires.html @@ -18,10 +18,13 @@

{% blocktrans trimmed %} - Questions allow your attendees to fill in additional data about their ticket. If you provide food, one + Questionaires 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 %}

+

+ TODO: add more specific explanation of the questionnaire concept. +

{{ request.event.settings.locales|json_script:"event_locales" }} {{ questionnaire_type_choices|json_script:"questionnaire_type_choices" }} diff --git a/src/pretix/presale/templates/pretixpresale/event/checkout_questions.html b/src/pretix/presale/templates/pretixpresale/event/checkout_questions.html index d69c6bea44..d16cb107bc 100644 --- a/src/pretix/presale/templates/pretixpresale/event/checkout_questions.html +++ b/src/pretix/presale/templates/pretixpresale/event/checkout_questions.html @@ -68,6 +68,18 @@ {% endif %} + {% if order_questions_form %} +
+ +

+ {% trans "Additional order questions" %} +

+
+
+ {% bootstrap_form order_questions_form layout="checkout" %} +
+
+ {% endif %} {% for pos, forms in formgroups %}
diff --git a/src/pretix/static/pretixcontrol/js/ui/questionnaires/App.vue b/src/pretix/static/pretixcontrol/js/ui/questionnaires/App.vue index 60eab68c8c..9500a284f4 100644 --- a/src/pretix/static/pretixcontrol/js/ui/questionnaires/App.vue +++ b/src/pretix/static/pretixcontrol/js/ui/questionnaires/App.vue @@ -72,16 +72,20 @@ export default { diff --git a/src/pretix/static/pretixcontrol/js/ui/questionnaires/QuestionnaireElement.vue b/src/pretix/static/pretixcontrol/js/ui/questionnaires/QuestionnaireElement.vue index 9b9bb91182..a057c014d0 100644 --- a/src/pretix/static/pretixcontrol/js/ui/questionnaires/QuestionnaireElement.vue +++ b/src/pretix/static/pretixcontrol/js/ui/questionnaires/QuestionnaireElement.vue @@ -66,12 +66,12 @@ const isEditable = computed(() => props.selected_product && props.questionnaire.
-
+ :class="{ 'hidden-questionnaire': isHidden }"> + {{ props.questionnaire.internal_name }}