From 0ddda4a668b4fe0ad4789961fafe8340af656ea6 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Mon, 4 Sep 2017 21:09:08 +0200 Subject: [PATCH] Fix #617 -- Purge ticket cache after ticket settings/layout changes --- src/pretix/control/views/event.py | 8 ++++++-- src/pretix/plugins/ticketoutputpdf/views.py | 12 +++++++++++- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/pretix/control/views/event.py b/src/pretix/control/views/event.py index fea8a1ea3..584ebacff 100644 --- a/src/pretix/control/views/event.py +++ b/src/pretix/control/views/event.py @@ -25,8 +25,8 @@ from i18nfield.strings import LazyI18nString from pytz import timezone from pretix.base.models import ( - CachedTicket, Event, Item, ItemVariation, LogEntry, Order, OrderPosition, - RequiredAction, TaxRule, Voucher, + CachedCombinedTicket, CachedTicket, Event, Item, ItemVariation, LogEntry, + Order, OrderPosition, RequiredAction, TaxRule, Voucher, ) from pretix.base.models.event import EventMetaValue from pretix.base.services import tickets @@ -634,6 +634,9 @@ class TicketSettings(EventPermissionRequiredMixin, FormView): CachedTicket.objects.filter( order_position__order__event=self.request.event, provider=provider.identifier ).delete() + CachedCombinedTicket.objects.filter( + order__event=self.request.event, provider=provider.identifier + ).delete() else: success = False form = self.get_form(self.get_form_class()) @@ -645,6 +648,7 @@ class TicketSettings(EventPermissionRequiredMixin, FormView): k: form.cleaned_data.get(k) for k in form.changed_data } ) + messages.success(self.request, _('Your changes have been saved.')) return redirect(self.get_success_url()) else: diff --git a/src/pretix/plugins/ticketoutputpdf/views.py b/src/pretix/plugins/ticketoutputpdf/views.py index ae7d4d87c..922e4fc5b 100644 --- a/src/pretix/plugins/ticketoutputpdf/views.py +++ b/src/pretix/plugins/ticketoutputpdf/views.py @@ -16,7 +16,9 @@ from django.utils.translation import ugettext as _ from django.views.generic import TemplateView from pretix.base.i18n import language -from pretix.base.models import CachedFile, InvoiceAddress +from pretix.base.models import ( + CachedCombinedTicket, CachedFile, CachedTicket, InvoiceAddress, +) from pretix.control.permissions import EventPermissionRequiredMixin from pretix.control.views import ChartContainingView from pretix.helpers.database import rolledback_transaction @@ -128,6 +130,14 @@ class EditorView(EventPermissionRequiredMixin, ChartContainingView, TemplateView request.event.settings.set('ticketoutput_pdf_background', 'file://' + newname) request.event.settings.set('ticketoutput_pdf_layout', request.POST.get("data")) + + CachedTicket.objects.filter( + order_position__order__event=self.request.event, provider='pdf' + ).delete() + CachedCombinedTicket.objects.filter( + order__event=self.request.event, provider='pdf' + ).delete() + return JsonResponse({'status': 'ok'}) return HttpResponseBadRequest()