Fixed ticket download in control panel

This commit is contained in:
Raphael Michel
2015-09-16 11:57:13 +02:00
parent 0903990510
commit 0680f940a6
2 changed files with 19 additions and 3 deletions

View File

@@ -1,8 +1,8 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from __future__ import unicode_literals from __future__ import unicode_literals
from django.db import models, migrations
import versions.models import versions.models
from django.db import migrations, models
class Migration(migrations.Migration): class Migration(migrations.Migration):

View File

@@ -12,10 +12,11 @@ from django.utils.timezone import now
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from django.views.generic import DetailView, ListView, TemplateView, View from django.views.generic import DetailView, ListView, TemplateView, View
from pretix.base.models import CachedFile, Item, Order, Quota from pretix.base.models import CachedFile, CachedTicket, Item, Order, Quota
from pretix.base.services.export import export from pretix.base.services.export import export
from pretix.base.services.orders import mark_order_paid from pretix.base.services.orders import mark_order_paid
from pretix.base.services.stats import order_overview from pretix.base.services.stats import order_overview
from pretix.base.services.tickets import generate
from pretix.base.signals import ( from pretix.base.signals import (
register_data_exporters, register_payment_providers, register_data_exporters, register_payment_providers,
register_ticket_outputs, register_ticket_outputs,
@@ -216,7 +217,22 @@ class OrderDownload(OrderView):
if self.order.status != Order.STATUS_PAID: if self.order.status != Order.STATUS_PAID:
messages.error(request, _('Order is not paid.')) messages.error(request, _('Order is not paid.'))
return redirect(self.get_order_url()) return redirect(self.get_order_url())
return self.output.generate(request, self.order)
try:
ct = CachedTicket.objects.get(order=self.order, provider=self.output.identifier)
except CachedTicket.DoesNotExist:
ct = CachedTicket(order=self.order, provider=self.output.identifier)
try:
ct.cachedfile
except CachedFile.DoesNotExist:
cf = CachedFile()
cf.date = now()
cf.expires = self.request.event.date_from + timedelta(days=30)
cf.save()
ct.cachedfile = cf
ct.save()
generate(self.order.identity, self.output.identifier)
return redirect(reverse('presale:cachedfile.download', kwargs={'id': ct.cachedfile.id}))
class OrderExtend(OrderView): class OrderExtend(OrderView):