diff --git a/src/pretix/base/views/mixins.py b/src/pretix/base/views/mixins.py index 1c592b19aa..5760686a03 100644 --- a/src/pretix/base/views/mixins.py +++ b/src/pretix/base/views/mixins.py @@ -144,6 +144,7 @@ class BaseQuestionsViewMixin: class OrderQuestionsViewMixin(BaseQuestionsViewMixin): invoice_form_class = BaseInvoiceAddressForm + only_user_visible = True @cached_property def _positions_for_questions(self): @@ -151,6 +152,9 @@ class OrderQuestionsViewMixin(BaseQuestionsViewMixin): @cached_property def positions(self): + qqs = Question.objects.all() + if self.only_user_visible: + qqs = qqs.filter(ask_during_checkin=False) return list(self.order.positions.select_related( 'item', 'variation' ).prefetch_related( @@ -158,7 +162,7 @@ class OrderQuestionsViewMixin(BaseQuestionsViewMixin): QuestionAnswer.objects.prefetch_related('options'), to_attr='answerlist'), Prefetch('item__questions', - Question.objects.filter(ask_during_checkin=False).prefetch_related( + qqs.prefetch_related( Prefetch('options', QuestionOption.objects.prefetch_related(Prefetch( # This prefetch statement is utter bullshit, but it actually prevents Django from doing # a lot of queries since ModelChoiceIterator stops trying to be clever once we have diff --git a/src/pretix/control/views/orders.py b/src/pretix/control/views/orders.py index 39dc2d0710..3d756eb34f 100644 --- a/src/pretix/control/views/orders.py +++ b/src/pretix/control/views/orders.py @@ -639,6 +639,7 @@ class OrderChange(OrderView): class OrderModifyInformation(OrderQuestionsViewMixin, OrderView): permission = 'can_change_orders' template_name = 'pretixcontrol/order/change_questions.html' + only_user_visible = False def post(self, request, *args, **kwargs): failed = not self.save() or not self.invoice_form.is_valid() diff --git a/src/pretix/presale/views/questions.py b/src/pretix/presale/views/questions.py index a03c1ebfb6..610ebe26f5 100644 --- a/src/pretix/presale/views/questions.py +++ b/src/pretix/presale/views/questions.py @@ -9,9 +9,13 @@ from pretix.presale.views import get_cart class QuestionsViewMixin(BaseQuestionsViewMixin): form_class = QuestionsForm + only_user_visible = True @cached_property def _positions_for_questions(self): + qqs = Question.objects.all() + if self.only_user_visible: + qqs = qqs.filter(ask_during_checkin=False) cart = get_cart(self.request).select_related( 'addon_to' ).prefetch_related( @@ -20,7 +24,7 @@ class QuestionsViewMixin(BaseQuestionsViewMixin): QuestionAnswer.objects.prefetch_related('options'), to_attr='answerlist'), Prefetch('item__questions', - Question.objects.filter(ask_during_checkin=False).prefetch_related( + qqs.prefetch_related( Prefetch('options', QuestionOption.objects.prefetch_related(Prefetch( # This prefetch statement is utter bullshit, but it actually prevents Django from doing # a lot of queries since ModelChoiceIterator stops trying to be clever once we have