def post(self, request, *args, **kwargs): failed = not self.save() or not self.invoice_form.is_valid() if failed: messages.error(self.request, _("We had difficulties processing your input. Please review the errors below.")) return self.get(request, *args, **kwargs) if hasattr(self.invoice_form, 'save'): self.invoice_form.save() self.order.log_action('pretix.event.order.modified', { 'invoice_data': self.invoice_form.cleaned_data, 'data': [{ k: (f.cleaned_data.get(k).name if isinstance(f.cleaned_data.get(k), File) else f.cleaned_data.get(k)) for k in f.changed_data } for f in self.forms] }) order_modified.send(sender=self.request.event, order=self.order) if self.invoice_form.has_changed(): success_message = ('Your invoice address has been updated. Please contact us if you need us ' 'to regenerate your invoice.') messages.success(self.request, _(success_message)) invalidate_cache.apply_async(kwargs={'event': self.request.event.pk, 'order': self.order.pk}) CachedTicket.objects.filter(order_position__order=self.order).delete() CachedCombinedTicket.objects.filter(order=self.order).delete() return redirect(self.get_order_url())
def post(self, request, *args, **kwargs): failed = not self.save() or not self.invoice_form.is_valid() if failed: messages.error( self.request, _("We had difficulties processing your input. Please review the errors below." )) return self.get(request, *args, **kwargs) if hasattr(self.invoice_form, 'save'): self.invoice_form.save() self.order.log_action( 'pretix.event.order.modified', { 'invoice_data': self.invoice_form.cleaned_data, 'data': [{ k: (f.cleaned_data.get(k).name if isinstance( f.cleaned_data.get(k), File) else f.cleaned_data.get(k)) for k in f.changed_data } for f in self.forms] }) order_modified.send(sender=self.request.event, order=self.order) if self.invoice_form.has_changed(): success_message = ( 'Your invoice address has been updated. Please contact us if you need us ' 'to regenerate your invoice.') messages.success(self.request, _(success_message)) invalidate_cache.apply_async(kwargs={ 'event': self.request.event.pk, 'order': self.order.pk }) CachedTicket.objects.filter(order_position__order=self.order).delete() CachedCombinedTicket.objects.filter(order=self.order).delete() return redirect(self.get_order_url())
def post(self, request, *args, **kwargs): failed = not self.save() or not self.invoice_form.is_valid() if failed: messages.error(self.request, _("We had difficulties processing your input. Please review the errors below.")) return self.get(request, *args, **kwargs) if hasattr(self.invoice_form, 'save'): self.invoice_form.save() self.order.log_action('pretix.event.order.modified', { 'invoice_data': self.invoice_form.cleaned_data, 'data': [{ k: (f.cleaned_data.get(k).name if isinstance(f.cleaned_data.get(k), File) else f.cleaned_data.get(k)) for k in f.changed_data } for f in self.forms] }) order_modified.send(sender=self.request.event, order=self.order) if request.GET.get('generate_invoice') == 'true': if not can_generate_invoice(self.request.event, self.order): messages.error(self.request, _('You cannot generate an invoice for this order.')) elif self.order.invoices.exists(): messages.error(self.request, _('An invoice for this order already exists.')) else: i = generate_invoice(self.order) self.order.log_action('pretix.event.order.invoice.generated', data={ 'invoice': i.pk }) messages.success(self.request, _('The invoice has been generated.')) invalidate_cache.apply_async(kwargs={'event': self.request.event.pk, 'order': self.order.pk}) CachedTicket.objects.filter(order_position__order=self.order).delete() CachedCombinedTicket.objects.filter(order=self.order).delete() return redirect(self.get_order_url())
def save_background(self, f: CachedFile): if self.layout.background: self.layout.background.delete() self.layout.background.save('background.pdf', f.file) invalidate_cache.apply_async(kwargs={ 'event': self.request.event.pk, 'provider': 'pdf' })
def save_layout(self): self.layout.layout = self.request.POST.get("data") self.layout.save(update_fields=['layout']) self.layout.log_action( action='pretix.plugins.ticketoutputpdf.layout.changed', user=self.request.user, data={'layout': self.request.POST.get("data")}) invalidate_cache.apply_async(kwargs={ 'event': self.request.event.pk, 'provider': 'pdf' })
def form_valid(self, form): messages.success(self.request, _('Your changes have been saved.')) if form.has_changed() or any(f.has_changed() for f in self.plugin_forms): data = {k: form.cleaned_data.get(k) for k in form.changed_data} for f in self.plugin_forms: data.update({ k: (f.cleaned_data.get(k).name if isinstance( f.cleaned_data.get(k), File) else f.cleaned_data.get(k)) for k in f.changed_data }) self.object.log_action('pretix.event.item.changed', user=self.request.user, data=data) invalidate_cache.apply_async(kwargs={ 'event': self.request.event.pk, 'item': self.object.pk }) for f in self.plugin_forms: f.save() for k, v in self.formsets.items(): if k == 'variations': self.save_formset('variations', 'variation', serializer=ItemVariationSerializer, rm_verb='deleted') elif k == 'addons': self.save_formset('addons', 'addons', 'base_item', serializer=ItemAddOnSerializer) elif k == 'bundles': self.save_formset('bundles', 'bundles', 'base_item', order=False, serializer=ItemBundleSerializer) else: v.save() return super().form_valid(form)
def form_valid(self, form): messages.success(self.request, _('Your changes have been saved.')) if form.has_changed() or any(f.has_changed() for f in self.plugin_forms): data = { k: form.cleaned_data.get(k) for k in form.changed_data } for f in self.plugin_forms: data.update({ k: (f.cleaned_data.get(k).name if isinstance(f.cleaned_data.get(k), File) else f.cleaned_data.get(k)) for k in f.changed_data }) self.object.log_action( 'pretix.event.item.changed', user=self.request.user, data=data ) invalidate_cache.apply_async(kwargs={'event': self.request.event.pk, 'item': self.object.pk}) for f in self.plugin_forms: f.save() return super().form_valid(form)
def form_valid(self, form): messages.success(self.request, _('Your changes have been saved.')) if form.has_changed() or any(f.has_changed() for f in self.plugin_forms): data = { k: form.cleaned_data.get(k) for k in form.changed_data } for f in self.plugin_forms: data.update({ k: (f.cleaned_data.get(k).name if isinstance(f.cleaned_data.get(k), File) else f.cleaned_data.get(k)) for k in f.changed_data }) self.object.log_action( 'pretix.event.item.changed', user=self.request.user, data=data ) invalidate_cache.apply_async(kwargs={'event': self.request.event.pk, 'item': self.object.pk}) for f in self.plugin_forms: f.save() return super().form_valid(form)
def save_layout(self): super().save_layout() invalidate_cache.apply_async(kwargs={ 'event': self.request.event.pk, 'provider': 'pdf' })