diff --git a/src/pretix/base/services/orders.py b/src/pretix/base/services/orders.py index e4ad0aa2b..4b78a6b93 100644 --- a/src/pretix/base/services/orders.py +++ b/src/pretix/base/services/orders.py @@ -1418,12 +1418,8 @@ def send_download_reminders(sender, **kwargs): if o.status != Order.STATUS_PAID: if o.status != Order.STATUS_PENDING or o.require_approval or (not o.valid_if_pending and not o.event.settings.ticket_download_pending): continue - send = False - for p in positions: - if p.generate_ticket: - send = True - break - if not send: + + if not any(p.generate_ticket for p in positions): continue with language(o.locale, o.event.settings.region): diff --git a/src/pretix/presale/views/order.py b/src/pretix/presale/views/order.py index 5705518ba..2d2db4036 100644 --- a/src/pretix/presale/views/order.py +++ b/src/pretix/presale/views/order.py @@ -200,25 +200,6 @@ class TicketPageMixin: ) return ctx - -@method_decorator(xframe_options_exempt, 'dispatch') -class OrderDetails(EventViewMixin, OrderDetailMixin, CartMixin, TicketPageMixin, TemplateView): - template_name = "pretixpresale/event/order.html" - - def get(self, request, *args, **kwargs): - self.kwargs = kwargs - if not self.order: - raise Http404(_('Unknown order code or not authorized to access this order.')) - if self.order.status == Order.STATUS_PENDING: - payment_to_complete = self.order.payments.filter(state=OrderPayment.PAYMENT_STATE_CREATED, process_initiated=False).first() - if payment_to_complete: - return redirect(eventreverse(self.request.event, 'presale:event.order.pay.complete', kwargs={ - 'order': self.order.code, - 'secret': self.order.secret, - 'payment': payment_to_complete.pk - })) - return super().get(request, *args, **kwargs) - @cached_property def download_buttons(self): buttons = [] @@ -239,6 +220,25 @@ class OrderDetails(EventViewMixin, OrderDetailMixin, CartMixin, TicketPageMixin, }) return buttons + +@method_decorator(xframe_options_exempt, 'dispatch') +class OrderDetails(EventViewMixin, OrderDetailMixin, CartMixin, TicketPageMixin, TemplateView): + template_name = "pretixpresale/event/order.html" + + def get(self, request, *args, **kwargs): + self.kwargs = kwargs + if not self.order: + raise Http404(_('Unknown order code or not authorized to access this order.')) + if self.order.status == Order.STATUS_PENDING: + payment_to_complete = self.order.payments.filter(state=OrderPayment.PAYMENT_STATE_CREATED, process_initiated=False).first() + if payment_to_complete: + return redirect(eventreverse(self.request.event, 'presale:event.order.pay.complete', kwargs={ + 'order': self.order.code, + 'secret': self.order.secret, + 'payment': payment_to_complete.pk + })) + return super().get(request, *args, **kwargs) + def get_context_data(self, **kwargs): ctx = super().get_context_data(**kwargs) @@ -342,26 +342,6 @@ class OrderPositionDetails(EventViewMixin, OrderPositionDetailMixin, CartMixin, raise Http404(_('Unknown order code or not authorized to access this order.')) return super().get(request, *args, **kwargs) - @cached_property - def download_buttons(self): - buttons = [] - - responses = register_ticket_outputs.send(self.request.event) - for receiver, response in responses: - provider = response(self.request.event) - if not provider.is_enabled: - continue - buttons.append({ - 'text': provider.download_button_text or 'Download', - 'icon': provider.download_button_icon or 'fa-download', - 'identifier': provider.identifier, - 'multi': provider.multi_download_enabled, - 'multi_text': provider.multi_download_button_text or 'Download', - 'long_text': provider.long_download_button_text or 'Download', - 'javascript_required': provider.javascript_required - }) - return buttons - def get_context_data(self, **kwargs): qs = self.order.positions.select_related('tax_rule').filter( Q(pk=self.position.pk) | Q(addon_to__id=self.position.pk)