Compatibility with an external file storage separated in pub/ and priv/

This commit is contained in:
Raphael Michel
2018-03-20 09:32:20 +01:00
parent 511cdbbfe2
commit 840cee206a
7 changed files with 14 additions and 11 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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