diff --git a/src/pretix/base/services/cleanup.py b/src/pretix/base/services/cleanup.py index 90f1757c9e..06eb4ab146 100644 --- a/src/pretix/base/services/cleanup.py +++ b/src/pretix/base/services/cleanup.py @@ -3,6 +3,8 @@ from datetime import timedelta from django.dispatch import receiver from django.utils.timezone import now +from pretix.base.models import CachedCombinedTicket, CachedTicket + from ..models import CachedFile, CartPosition, InvoiceAddress from ..signals import periodic_task @@ -21,3 +23,11 @@ def clean_cart_positions(sender, **kwargs): def clean_cached_files(sender, **kwargs): for cf in CachedFile.objects.filter(expires__isnull=False, expires__lt=now()): cf.delete() + + +@receiver(signal=periodic_task) +def clean_cached_tickets(sender, **kwargs): + for cf in CachedTicket.objects.filter(created__lte=now() - timedelta(days=30)): + cf.delete() + for cf in CachedCombinedTicket.objects.filter(created__lte=now() - timedelta(days=30)): + cf.delete() diff --git a/src/pretix/plugins/ticketoutputpdf/views.py b/src/pretix/plugins/ticketoutputpdf/views.py index 304493a569..996b5239c1 100644 --- a/src/pretix/plugins/ticketoutputpdf/views.py +++ b/src/pretix/plugins/ticketoutputpdf/views.py @@ -212,12 +212,10 @@ class LayoutEditorView(BaseEditorView): 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")}) - CachedTicket.objects.filter( - order_position__order__event=self.request.event, provider='pdf' - ).delete() - CachedCombinedTicket.objects.filter( - order__event=self.request.event, provider='pdf' - ).delete() + for ct in CachedTicket.objects.filter(order_position__order__event=self.request.event, provider='pdf'): + ct.delete() + for ct in CachedCombinedTicket.objects.filter(order__event=self.request.event, provider='pdf'): + ct.delete() def get_default_background(self): return static('pretixpresale/pdf/ticket_default_a4.pdf')