From d50ce404996d1e7ca529c36adde416c43f161c06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Sun, 14 Jul 2019 08:24:48 +0200 Subject: [PATCH] assets: add template tag to get URL property for CSS (#34812) --- combo/apps/assets/templatetags/assets.py | 8 ++++++++ tests/test_public_templatetags.py | 11 +++++++++++ 2 files changed, 19 insertions(+) diff --git a/combo/apps/assets/templatetags/assets.py b/combo/apps/assets/templatetags/assets.py index 84cde3c2..8486bb7d 100644 --- a/combo/apps/assets/templatetags/assets.py +++ b/combo/apps/assets/templatetags/assets.py @@ -57,6 +57,14 @@ def asset_url(*args, **kwargs): return get_thumbnail(asset, geometry_string, **kwargs).url +@register.simple_tag +def asset_css_url(*args, **kwargs): + url = asset_url(*args, **kwargs) + if url: + return 'url(%s)' % url + else: + return 'none' + @register.assignment_tag def get_asset(key): diff --git a/tests/test_public_templatetags.py b/tests/test_public_templatetags.py index f13b82b3..2e8dcc90 100644 --- a/tests/test_public_templatetags.py +++ b/tests/test_public_templatetags.py @@ -150,20 +150,31 @@ def test_asset_template_tags(): t = Template('''{% load assets %}{% get_asset "collectivity:banner" as banner %}{% if banner %}BANNER{% endif %}''') assert t.render(Context()) == '' + t = Template('''{% load assets %}{% asset_url "collectivity:banner" %}''') + assert t.render(Context()) == '' + t = Template('''{% load assets %}{% asset_css_url "collectivity:banner" %}''') + assert t.render(Context()) == 'none' + + t = Template('''{% load assets %}{% get_asset "collectivity:banner" as banner %}{% if banner %}BANNER{% endif %}''') Asset(key='collectivity:banner', asset=File(StringIO('test'), 'test.png')).save() assert t.render(Context()) == 'BANNER' t = Template('''{% load assets %}{% asset_url "collectivity:banner" %}''') assert t.render(Context()) == '/media/assets/test.png' + t = Template('''{% load assets %}{% asset_css_url "collectivity:banner" %}''') + assert t.render(Context()) == 'url(/media/assets/test.png)' page = Page(title='Home', slug='index', template_name='standard') page.save() t = Template('''{% load assets %}{% asset_url page.picture "collectivity:banner" %}''') assert t.render(Context()) == '/media/assets/test.png' + t = Template('''{% load assets %}{% asset_css_url page.picture "collectivity:banner" %}''') + assert t.render(Context()) == 'url(/media/assets/test.png)' page.picture = File(StringIO('test'), 'test2.png') page.save() + t = Template('''{% load assets %}{% asset_url page.picture "collectivity:banner" %}''') assert t.render(Context({'page': page})) == '/media/page-pictures/test2.png' # pass image to sorl.thumbnail