def _download_order(self): ct = get_cachedticket_for_order(self.order, 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.output.identifier, ct.extension ) return resp
def download(self, request, output, **kwargs): provider = self._get_output_provider(output) order = self.get_object() if order.status != Order.STATUS_PAID: raise PermissionDenied("Downloads are not available for unpaid orders.") ct = get_cachedticket_for_order(order, 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(), order.code, provider.identifier, ct.extension ) return resp