def download(self, request, output, **kwargs): provider = self._get_output_provider(output) pos = self.get_object() if pos.order.status != Order.STATUS_PAID: raise PermissionDenied( "Downloads are not available for unpaid orders.") if pos.addon_to_id and not request.event.settings.ticket_download_addons: raise PermissionDenied( "Downloads are not enabled for add-on products.") if not pos.item.admission and not request.event.settings.ticket_download_nonadm: raise PermissionDenied( "Downloads are not enabled for non-admission products.") ct = get_cachedticket_for_position(pos, provider.identifier) if not ct.file: raise RetryException() else: resp = FileResponse(ct.file.file, content_type=ct.type) resp[ 'Content-Disposition'] = 'attachment; filename="{}-{}-{}-{}{}"'.format( self.request.event.slug.upper(), pos.order.code, pos.positionid, provider.identifier, ct.extension) return resp
def _download_position(self): ct = get_cachedticket_for_position(self.order_position, self.output.identifier) if 'ajax' in self.request.GET: return JsonResponse({ 'ready': bool(ct and ct.file), 'success': False, 'redirect': self.get_self_url() }) elif not ct.file: return render(self.request, "pretixbase/cachedfiles/pending.html", {}) else: resp = FileResponse(ct.file.file, content_type=ct.type) resp['Content-Disposition'] = 'attachment; filename="{}-{}-{}-{}{}"'.format( self.request.event.slug.upper(), self.order.code, self.order_position.positionid, self.output.identifier, ct.extension ) return resp
def _download_position(self): ct = get_cachedticket_for_position(self.order_position, self.output.identifier) if 'ajax' in self.request.GET: return JsonResponse({ 'ready': bool(ct and ct.file), 'success': False, 'redirect': self.get_self_url() }) elif not ct.file: return render(self.request, "pretixbase/cachedfiles/pending.html", {}) else: resp = FileResponse(ct.file.file, content_type=ct.type) resp['Content-Disposition'] = 'attachment; filename="{}-{}-{}-{}{}"'.format( self.request.event.slug.upper(), self.order.code, self.order_position.positionid, self.output.identifier, ct.extension ) return resp
def download(self, request, output, **kwargs): provider = self._get_output_provider(output) pos = self.get_object() if pos.order.status != Order.STATUS_PAID: raise PermissionDenied("Downloads are not available for unpaid orders.") if pos.addon_to_id and not request.event.settings.ticket_download_addons: raise PermissionDenied("Downloads are not enabled for add-on products.") if not pos.item.admission and not request.event.settings.ticket_download_nonadm: raise PermissionDenied("Downloads are not enabled for non-admission products.") ct = get_cachedticket_for_position(pos, provider.identifier) if not ct.file: raise RetryException() else: resp = FileResponse(ct.file.file, content_type=ct.type) resp['Content-Disposition'] = 'attachment; filename="{}-{}-{}-{}{}"'.format( self.request.event.slug.upper(), pos.order.code, pos.positionid, provider.identifier, ct.extension ) return resp