mirror of
https://github.com/pretix/pretix.git
synced 2026-08-04 09:47:50 +00:00
base/pdf: Only call get_fonts() once per generation
This commit is contained in:
@@ -52,7 +52,6 @@ import reportlab.rl_config
|
||||
from bidi.algorithm import get_display
|
||||
from django.conf import settings
|
||||
from django.contrib.staticfiles import finders
|
||||
from django.core.cache import cache
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.db.models import Max, Min
|
||||
from django.db.models.fields.files import FieldFile
|
||||
@@ -739,6 +738,7 @@ class Renderer:
|
||||
else:
|
||||
self.bg_bytes = None
|
||||
self.bg_pdf = None
|
||||
self.event_fonts = list(get_fonts(event, pdf_support_required=True).keys()) + ['Open Sans']
|
||||
|
||||
@classmethod
|
||||
def _register_fonts(cls, event: Event = None):
|
||||
@@ -942,11 +942,7 @@ class Renderer:
|
||||
|
||||
# Since pdfmetrics.registerFont is global, we want to make sure that no one tries to sneak in a font, they
|
||||
# should not have access to.
|
||||
event_fonts = cache.get(f'event_fonts_pdf_support_required_{order.event.pk}')
|
||||
if not event_fonts:
|
||||
event_fonts = list(get_fonts(order.event, pdf_support_required=True).keys()) + ['Open Sans']
|
||||
cache.set(f'event_fonts_pdf_support_required_{order.event.pk}', event_fonts, 30)
|
||||
if font not in event_fonts:
|
||||
if font not in self.event_fonts:
|
||||
logger.warning(f'Unauthorized use of font "{font}"')
|
||||
font = 'Open Sans'
|
||||
|
||||
|
||||
Reference in New Issue
Block a user