Add cleanup for cached tickets

This commit is contained in:
Raphael Michel
2018-11-26 12:04:25 +01:00
parent 2cc5b7f4e8
commit c7a04bc08a
2 changed files with 14 additions and 6 deletions

View File

@@ -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()

View File

@@ -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')