From 2b8d12f98799fad571458b50526aafc83c10cfc2 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Fri, 27 Oct 2017 00:01:24 +0200 Subject: [PATCH] Show selected add-ons in questions step --- src/pretix/presale/checkoutflow.py | 2 +- .../pretixpresale/event/checkout_questions.html | 14 ++++++++++++++ src/pretix/presale/views/questions.py | 8 ++++++-- src/pretix/static/pretixpresale/scss/_forms.scss | 9 ++++++++- 4 files changed, 29 insertions(+), 4 deletions(-) diff --git a/src/pretix/presale/checkoutflow.py b/src/pretix/presale/checkoutflow.py index ada4464c6f..9822d3c24e 100644 --- a/src/pretix/presale/checkoutflow.py +++ b/src/pretix/presale/checkoutflow.py @@ -348,7 +348,7 @@ class QuestionsStep(QuestionsViewMixin, CartMixin, TemplateFlowStep): messages.warning(request, _('Please enter your name.')) return False - for cp in self.positions: + for cp in self._positions_for_questions: answ = { aw.question_id: aw.answer for aw in cp.answers.all() } diff --git a/src/pretix/presale/templates/pretixpresale/event/checkout_questions.html b/src/pretix/presale/templates/pretixpresale/event/checkout_questions.html index 8055eb4367..adbdb1c219 100644 --- a/src/pretix/presale/templates/pretixpresale/event/checkout_questions.html +++ b/src/pretix/presale/templates/pretixpresale/event/checkout_questions.html @@ -72,6 +72,20 @@
+ {% if pos.addons.all %} +
+ +
+
    + {% for a in pos.addons.all %} +
  • {{ a.item.name }}{% if a.variation %} – {{ a.variation.value }}{% endif %}
  • + {% endfor %} +
+
+
+ {% endif %} {% for form in forms %} {% if form.pos.item != pos.item %} {# Add-Ons #} diff --git a/src/pretix/presale/views/questions.py b/src/pretix/presale/views/questions.py index 1b8d1f9485..26de21b4d2 100644 --- a/src/pretix/presale/views/questions.py +++ b/src/pretix/presale/views/questions.py @@ -22,8 +22,12 @@ class QuestionsViewMixin: addon_penalty = 1 if pos.addon_to else 0 return i, addon_penalty, pos.pk + @cached_property def _positions_for_questions(self): - return sorted(get_cart(self.request), key=self._keyfunc) + cart = get_cart(self.request).select_related( + 'addon_to' + ).prefetch_related('addons', 'addons__item', 'addons__variation') + return sorted(list(cart), key=self._keyfunc) @cached_property def forms(self): @@ -33,7 +37,7 @@ class QuestionsViewMixin: submitted at once. """ formlist = [] - for cr in self._positions_for_questions(): + for cr in self._positions_for_questions: cartpos = cr if isinstance(cr, CartPosition) else None orderpos = cr if isinstance(cr, OrderPosition) else None form = QuestionsForm(event=self.request.event, diff --git a/src/pretix/static/pretixpresale/scss/_forms.scss b/src/pretix/static/pretixpresale/scss/_forms.scss index 7ea45bb44d..9768054826 100644 --- a/src/pretix/static/pretixpresale/scss/_forms.scss +++ b/src/pretix/static/pretixpresale/scss/_forms.scss @@ -40,5 +40,12 @@ } .form-group.required .control-label:after { content: '*'; - color: $brand-primary + color: $brand-primary; } +.form-control-text { + padding-top: 7px; +} +.addon-list { + padding: 0; + list-style-type: none; +} \ No newline at end of file