mirror of
https://github.com/pretix/pretix.git
synced 2026-05-06 15:24:02 +00:00
Use CachedTicket.get_or_create to avoid duplicates
This commit is contained in:
@@ -420,19 +420,14 @@ class OrderDownload(OrderView):
|
||||
messages.error(request, _('Order is not paid.'))
|
||||
return redirect(self.get_order_url())
|
||||
|
||||
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:
|
||||
ct = CachedTicket.objects.get_or_create(order=self.order, provider=self.output.identifier)[0]
|
||||
if not ct.cachedfile:
|
||||
cf = CachedFile()
|
||||
cf.date = now()
|
||||
cf.expires = self.request.event.date_from + timedelta(days=30)
|
||||
cf.save()
|
||||
ct.cachedfile = cf
|
||||
ct.save()
|
||||
ct.save()
|
||||
if not ct.cachedfile.file.name:
|
||||
tickets.generate.apply_async(args=(self.order.id, self.output.identifier))
|
||||
return redirect(reverse('cachedfile.download', kwargs={'id': ct.cachedfile.id}))
|
||||
|
||||
Reference in New Issue
Block a user