def get(self, request, *args, **kwargs): if not self.output or not self.output.is_enabled: messages.error(request, _("You requested an invalid ticket output type.")) return redirect(self.get_order_url()) if not self.order: raise Http404(_("Unknown order code or not authorized to access this order.")) if self.order.status != Order.STATUS_PAID: messages.error(request, _("Order is not paid.")) return redirect(self.get_order_url()) if not self.request.event.settings.ticket_download or ( self.request.event.settings.ticket_download_date is not None and now() < self.request.event.settings.ticket_download_date ): messages.error(request, _("Ticket download is not (yet) enabled.")) 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: 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.id, self.output.identifier) return redirect(reverse("cachedfile.download", kwargs={"id": ct.cachedfile.id}))
def get(self, request, *args, **kwargs): if not self.output or not self.output.is_enabled: messages.error(request, _('You requested an invalid ticket output type.')) return redirect(self.get_order_url()) if self.order.status != Order.STATUS_PAID: 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: cf = CachedFile() cf.date = now() cf.expires = self.request.event.date_from + timedelta(days=30) cf.save() ct.cachedfile = cf ct.save() if not ct.cachedfile.file.name: tickets.generate(self.order.id, self.output.identifier) return redirect( reverse('cachedfile.download', kwargs={'id': ct.cachedfile.id}))
def get(self, request, *args, **kwargs): if not self.output or not self.output.is_enabled: messages.error(request, _('You requested an invalid ticket output type.')) return redirect(self.get_order_url()) if not self.order: raise Http404(_('Unknown order code or not authorized to access this order.')) if self.order.status != Order.STATUS_PAID: messages.error(request, _('Order is not paid.')) return redirect(self.get_order_url()) if (not self.request.event.settings.ticket_download or (self.request.event.settings.ticket_download_date is not None and now() < self.request.event.settings.ticket_download_date)): messages.error(request, _('Ticket download is not (yet) enabled.')) 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: 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.id, self.output.identifier) return redirect(reverse('cachedfile.download', kwargs={'id': ct.cachedfile.id}))
def test_cached_tickets(event, order): generate('orderposition', order.positions.first().pk, 'pdf') generate('order', order.pk, 'pdf') ct = CachedTicket.objects.get(order_position=order.positions.first(), provider='pdf') cct = CachedCombinedTicket.objects.get(order=order, provider='pdf') assert ct.file assert cct.file ct_fname = ct.file.path cct_fname = cct.file.path assert os.path.exists(ct_fname) assert os.path.exists(cct_fname) s = CachedTicketShredder(event) assert s.generate_files() is None s.shred_data() assert not CachedTicket.objects.filter(order_position=order.positions.first(), provider='pdf').exists() assert not CachedCombinedTicket.objects.filter(order=order, provider='pdf').exists() assert not os.path.exists(ct_fname) assert not os.path.exists(cct_fname)
def test_cached_tickets(event, order): generate(order.positions.first().pk, 'pdf') generate_order(order.pk, 'pdf') ct = CachedTicket.objects.get(order_position=order.positions.first(), provider='pdf') cct = CachedCombinedTicket.objects.get(order=order, provider='pdf') assert ct.file assert cct.file ct_fname = ct.file.path cct_fname = cct.file.path assert os.path.exists(ct_fname) assert os.path.exists(cct_fname) s = CachedTicketShredder(event) assert s.generate_files() is None s.shred_data() assert not CachedTicket.objects.filter(order_position=order.positions.first(), provider='pdf').exists() assert not CachedCombinedTicket.objects.filter(order=order, provider='pdf').exists() assert not os.path.exists(ct_fname) assert not os.path.exists(cct_fname)
def get(self, request, *args, **kwargs): if not self.output or not self.output.is_enabled: messages.error(request, _('You requested an invalid ticket output type.')) return redirect(self.get_order_url()) if self.order.status != Order.STATUS_PAID: 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: 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('cachedfile.download', kwargs={'id': ct.cachedfile.id}))