Ticket download: Fix error message representation

This commit is contained in:
Raphael Michel
2019-12-25 20:32:22 +01:00
parent 80a7c45e05
commit fb7e859e72

View File

@@ -30,7 +30,9 @@ from pretix.base.services.invoices import (
generate_invoice, invoice_pdf, invoice_pdf_task, invoice_qualified, generate_invoice, invoice_pdf, invoice_pdf_task, invoice_qualified,
) )
from pretix.base.services.mail import SendMailException from pretix.base.services.mail import SendMailException
from pretix.base.services.orders import cancel_order, change_payment_provider from pretix.base.services.orders import (
OrderError, cancel_order, change_payment_provider,
)
from pretix.base.services.tickets import generate, invalidate_cache from pretix.base.services.tickets import generate, invalidate_cache
from pretix.base.signals import ( from pretix.base.signals import (
allow_ticket_download, order_modified, register_ticket_outputs, allow_ticket_download, order_modified, register_ticket_outputs,
@@ -782,20 +784,20 @@ class OrderDownloadMixin:
def get(self, request, *args, **kwargs): def get(self, request, *args, **kwargs):
if not self.output or not self.output.is_enabled: if not self.output or not self.output.is_enabled:
return self.error(_('You requested an invalid ticket output type.')) return self.error(OrderError(_('You requested an invalid ticket output type.')))
if 'async_id' in request.GET and settings.HAS_CELERY: if 'async_id' in request.GET and settings.HAS_CELERY:
return self.get_result(request) return self.get_result(request)
return self.post(request, *args, **kwargs) return self.post(request, *args, **kwargs)
def post(self, request, *args, **kwargs): def post(self, request, *args, **kwargs):
if not self.output or not self.output.is_enabled: if not self.output or not self.output.is_enabled:
return self.error(_('You requested an invalid ticket output type.')) return self.error(OrderError(_('You requested an invalid ticket output type.')))
if not self.order or ('position' in kwargs and not self.order_position): if not self.order or ('position' in kwargs and not self.order_position):
raise Http404(_('Unknown order code or not authorized to access this order.')) raise Http404(_('Unknown order code or not authorized to access this order.'))
if not self.order.ticket_download_available: if not self.order.ticket_download_available:
return self.error(_('Ticket download is not (yet) enabled for this order.')) return self.error(OrderError(_('Ticket download is not (yet) enabled for this order.')))
if 'position' in kwargs and not self.order_position.generate_ticket: if 'position' in kwargs and not self.order_position.generate_ticket:
return self.error(_('Ticket download is not enabled for this product.')) return self.error(OrderError(_('Ticket download is not enabled for this product.')))
ct = self.get_last_ct() ct = self.get_last_ct()
if ct: if ct:
@@ -852,6 +854,7 @@ class OrderDownloadMixin:
@method_decorator(xframe_options_exempt, 'dispatch') @method_decorator(xframe_options_exempt, 'dispatch')
class OrderDownload(OrderDownloadMixin, EventViewMixin, OrderDetailMixin, AsyncAction, View): class OrderDownload(OrderDownloadMixin, EventViewMixin, OrderDetailMixin, AsyncAction, View):
task = generate task = generate
known_errortypes = ['OrderError']
def get_error_url(self): def get_error_url(self):
return self.get_order_url() return self.get_order_url()