Fix #617 -- Purge ticket cache after ticket settings/layout changes

This commit is contained in:
Raphael Michel
2017-09-04 21:09:08 +02:00
parent d3a76e9f2f
commit 0ddda4a668
2 changed files with 17 additions and 3 deletions

View File

@@ -25,8 +25,8 @@ from i18nfield.strings import LazyI18nString
from pytz import timezone from pytz import timezone
from pretix.base.models import ( from pretix.base.models import (
CachedTicket, Event, Item, ItemVariation, LogEntry, Order, OrderPosition, CachedCombinedTicket, CachedTicket, Event, Item, ItemVariation, LogEntry,
RequiredAction, TaxRule, Voucher, Order, OrderPosition, RequiredAction, TaxRule, Voucher,
) )
from pretix.base.models.event import EventMetaValue from pretix.base.models.event import EventMetaValue
from pretix.base.services import tickets from pretix.base.services import tickets
@@ -634,6 +634,9 @@ class TicketSettings(EventPermissionRequiredMixin, FormView):
CachedTicket.objects.filter( CachedTicket.objects.filter(
order_position__order__event=self.request.event, provider=provider.identifier order_position__order__event=self.request.event, provider=provider.identifier
).delete() ).delete()
CachedCombinedTicket.objects.filter(
order__event=self.request.event, provider=provider.identifier
).delete()
else: else:
success = False success = False
form = self.get_form(self.get_form_class()) 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 k: form.cleaned_data.get(k) for k in form.changed_data
} }
) )
messages.success(self.request, _('Your changes have been saved.')) messages.success(self.request, _('Your changes have been saved.'))
return redirect(self.get_success_url()) return redirect(self.get_success_url())
else: else:

View File

@@ -16,7 +16,9 @@ from django.utils.translation import ugettext as _
from django.views.generic import TemplateView from django.views.generic import TemplateView
from pretix.base.i18n import language 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.permissions import EventPermissionRequiredMixin
from pretix.control.views import ChartContainingView from pretix.control.views import ChartContainingView
from pretix.helpers.database import rolledback_transaction 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_background', 'file://' + newname)
request.event.settings.set('ticketoutput_pdf_layout', request.POST.get("data")) 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 JsonResponse({'status': 'ok'})
return HttpResponseBadRequest() return HttpResponseBadRequest()