Widget: Gracefully fail if custom CSS file is not found

This commit is contained in:
Raphael Michel
2021-03-31 09:34:10 +02:00
parent 1d6ed60f37
commit 0155669379

View File

@@ -70,15 +70,17 @@ def widget_js_etag(request, lang, **kwargs):
def widget_css(request, **kwargs):
o = getattr(request, 'event', request.organizer)
if o.settings.presale_widget_css_file:
resp = FileResponse(default_storage.open(o.settings.presale_widget_css_file),
content_type='text/css')
return resp
else:
tpl = get_template('pretixpresale/widget_dummy.html')
et = html.fromstring(tpl.render({})).xpath('/html/head/link')[0].attrib['href'].replace(settings.STATIC_URL, '')
f = finders.find(et)
resp = FileResponse(open(f, 'rb'), content_type='text/css')
return resp
try:
resp = FileResponse(default_storage.open(o.settings.presale_widget_css_file),
content_type='text/css')
return resp
except FileNotFoundError:
pass
tpl = get_template('pretixpresale/widget_dummy.html')
et = html.fromstring(tpl.render({})).xpath('/html/head/link')[0].attrib['href'].replace(settings.STATIC_URL, '')
f = finders.find(et)
resp = FileResponse(open(f, 'rb'), content_type='text/css')
return resp
def generate_widget_js(lang):