diff --git a/src/pretix/base/forms/__init__.py b/src/pretix/base/forms/__init__.py index 1c15aa368d..f3e31dd486 100644 --- a/src/pretix/base/forms/__init__.py +++ b/src/pretix/base/forms/__init__.py @@ -69,4 +69,5 @@ class SettingsForm(i18nfield.forms.I18nFormMixin, HierarkeyForm): ) else: fname = '%s/%s.%s.%s' % (self.obj.slug, name, nonce, name.split('.')[-1]) - return fname + # TODO: make sure pub is always correct + return 'pub/' + fname diff --git a/src/pretix/base/models/event.py b/src/pretix/base/models/event.py index a31dd78a95..c64d90f821 100644 --- a/src/pretix/base/models/event.py +++ b/src/pretix/base/models/event.py @@ -437,7 +437,8 @@ class Event(EventMixin, LoggedModel): if s.value.startswith('file://'): fi = default_storage.open(s.value[7:], 'rb') nonce = get_random_string(length=8) - fname = '%s/%s/%s.%s.%s' % ( + # TODO: make sure pub is always correct + fname = 'pub/%s/%s/%s.%s.%s' % ( self.organizer.slug, self.slug, s.key, nonce, s.value.split('.')[-1] ) newname = default_storage.save(fname, fi) diff --git a/src/pretix/base/models/items.py b/src/pretix/base/models/items.py index c0ec110d4d..8f268accc8 100644 --- a/src/pretix/base/models/items.py +++ b/src/pretix/base/models/items.py @@ -86,7 +86,7 @@ class ItemCategory(LoggedModel): def itempicture_upload_to(instance, filename: str) -> str: - return '%s/%s/item-%s-%s.%s' % ( + return 'pub/%s/%s/item-%s-%s.%s' % ( instance.event.organizer.slug, instance.event.slug, instance.id, str(uuid.uuid4()), filename.split('.')[-1] ) diff --git a/src/pretix/plugins/ticketoutputpdf/ticketoutput.py b/src/pretix/plugins/ticketoutputpdf/ticketoutput.py index 358f47145f..e65d4e5d98 100644 --- a/src/pretix/plugins/ticketoutputpdf/ticketoutput.py +++ b/src/pretix/plugins/ticketoutputpdf/ticketoutput.py @@ -317,7 +317,7 @@ class PdfTicketOutput(BaseTicketOutput): bgf = default_storage.open(bg_file.name, "rb") else: bgf = self._get_default_background() - bg_pdf = PdfFileReader(bgf) + bg_pdf = PdfFileReader(BytesIO(bgf.read())) for page in new_pdf.pages: bg_page = copy.copy(bg_pdf.getPage(0)) diff --git a/src/pretix/plugins/ticketoutputpdf/views.py b/src/pretix/plugins/ticketoutputpdf/views.py index 202b1a62f2..03eea13d04 100644 --- a/src/pretix/plugins/ticketoutputpdf/views.py +++ b/src/pretix/plugins/ticketoutputpdf/views.py @@ -138,7 +138,7 @@ class EditorView(EventPermissionRequiredMixin, TemplateView): # Create new file nonce = get_random_string(length=8) - fname = '%s-%s/%s/%s.%s.%s' % ( + fname = 'pub/%s-%s/%s/%s.%s.%s' % ( 'event', 'settings', self.request.event.pk, 'ticketoutput_{}_layout'.format(self.identifier), nonce, 'pdf' ) newname = default_storage.save(fname, cf.file) diff --git a/src/pretix/presale/management/commands/updatestyles.py b/src/pretix/presale/management/commands/updatestyles.py index 4f2f2c5962..efced28bcb 100644 --- a/src/pretix/presale/management/commands/updatestyles.py +++ b/src/pretix/presale/management/commands/updatestyles.py @@ -29,7 +29,7 @@ class Command(BaseCommand): fname = gs.settings.get('widget_file_{}'.format(lc)) if not fname or gs.settings.get('widget_checksum_{}'.format(lc), '') != checksum: newname = default_storage.save( - 'widget/widget.{}.{}.js'.format(lc, checksum), + 'pub/widget/widget.{}.{}.js'.format(lc, checksum), ContentFile(data) ) gs.settings.set('widget_file_{}'.format(lc), 'file://' + newname) diff --git a/src/pretix/presale/style.py b/src/pretix/presale/style.py index 84ec1d4d88..575dc9a4b8 100644 --- a/src/pretix/presale/style.py +++ b/src/pretix/presale/style.py @@ -45,7 +45,8 @@ def compile_scss(object, file="main.scss", fonts=True): if font != 'Open Sans' and fonts: sassrules.append(get_font_stylesheet(font)) sassrules.append( - '$font-family-sans-serif: "{}", "Open Sans", "OpenSans", "Helvetica Neue", Helvetica, Arial, sans-serif !default'.format( + '$font-family-sans-serif: "{}", "Open Sans", "OpenSans", "Helvetica Neue", Helvetica, Arial, sans-serif ' + '!default'.format( font )) @@ -70,7 +71,7 @@ def regenerate_css(event_id: int): # main.scss css, checksum = compile_scss(event) - fname = '{}/{}/presale.{}.css'.format(event.organizer.slug, event.slug, checksum[:16]) + fname = 'pub/{}/{}/presale.{}.css'.format(event.organizer.slug, event.slug, checksum[:16]) if event.settings.get('presale_css_checksum', '') != checksum: newname = default_storage.save(fname, ContentFile(css.encode('utf-8'))) @@ -79,7 +80,7 @@ def regenerate_css(event_id: int): # widget.scss css, checksum = compile_scss(event, file='widget.scss', fonts=False) - fname = '{}/{}/widget.{}.css'.format(event.organizer.slug, event.slug, checksum[:16]) + fname = 'pub/{}/{}/widget.{}.css'.format(event.organizer.slug, event.slug, checksum[:16]) if event.settings.get('presale_widget_css_checksum', '') != checksum: newname = default_storage.save(fname, ContentFile(css.encode('utf-8'))) @@ -93,7 +94,7 @@ def regenerate_organizer_css(organizer_id: int): # main.scss css, checksum = compile_scss(organizer) - fname = '{}/presale.{}.css'.format(organizer.slug, checksum[:16]) + fname = 'pub/{}/presale.{}.css'.format(organizer.slug, checksum[:16]) if organizer.settings.get('presale_css_checksum', '') != checksum: newname = default_storage.save(fname, ContentFile(css.encode('utf-8'))) organizer.settings.set('presale_css_file', newname) @@ -101,7 +102,7 @@ def regenerate_organizer_css(organizer_id: int): # widget.scss css, checksum = compile_scss(organizer) - fname = '{}/widget.{}.css'.format(organizer.slug, checksum[:16]) + fname = 'pub/{}/widget.{}.css'.format(organizer.slug, checksum[:16]) if organizer.settings.get('presale_widget_css_checksum', '') != checksum: newname = default_storage.save(fname, ContentFile(css.encode('utf-8'))) organizer.settings.set('presale_widget_css_file', newname)