forked from CGM_Public/pretix_original
Improve performance of bulk-generation of ticket PDFs
This commit is contained in:
@@ -35,19 +35,23 @@ class PdfTicketOutput(BaseTicketOutput):
|
|||||||
|
|
||||||
@cached_property
|
@cached_property
|
||||||
def layout_map(self):
|
def layout_map(self):
|
||||||
return {
|
if not hasattr(self.event, '_ticketoutputpdf_cache_layoutmap'):
|
||||||
(bi.item_id, bi.sales_channel): bi.layout
|
self.event._ticketoutputpdf_cache_layoutmap = {
|
||||||
for bi in TicketLayoutItem.objects.select_related('layout').filter(item__event=self.event)
|
(bi.item_id, bi.sales_channel): bi.layout
|
||||||
}
|
for bi in TicketLayoutItem.objects.select_related('layout').filter(item__event=self.event)
|
||||||
|
}
|
||||||
|
return self.event._ticketoutputpdf_cache_layoutmap
|
||||||
|
|
||||||
@cached_property
|
@cached_property
|
||||||
def default_layout(self):
|
def default_layout(self):
|
||||||
try:
|
if not hasattr(self.event, '_ticketoutputpdf_cache_default_layout'):
|
||||||
return self.event.ticket_layouts.get(default=True)
|
try:
|
||||||
except TicketLayout.DoesNotExist:
|
self.event._ticketoutputpdf_cache_default_layout = self.event.ticket_layouts.get(default=True)
|
||||||
return TicketLayout(
|
except TicketLayout.DoesNotExist:
|
||||||
layout=json.dumps(self._default_layout())
|
self.event._ticketoutputpdf_cache_default_layout = TicketLayout(
|
||||||
)
|
layout=json.dumps(self._default_layout())
|
||||||
|
)
|
||||||
|
return self.event._ticketoutputpdf_cache_default_layout
|
||||||
|
|
||||||
def _register_fonts(self):
|
def _register_fonts(self):
|
||||||
Renderer._register_fonts()
|
Renderer._register_fonts()
|
||||||
|
|||||||
Reference in New Issue
Block a user