Skip to content

Commit

Permalink
Merge extra CSS classes
Browse files Browse the repository at this point in the history
  • Loading branch information
dyve committed May 19, 2021
1 parent a4e95d9 commit 27bc03e
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 12 deletions.
14 changes: 2 additions & 12 deletions src/django_icons/utils.py
Expand Up @@ -48,24 +48,14 @@ def get_icon_kwargs_from_settings(name):
def get_icon_kwargs(name, *args, **kwargs):
"""Build the kwargs for the icon function based on args and kwargs of the template tag."""

# Get kwargs from settings, name will always be set
icon_kwargs = get_icon_kwargs_from_settings(name)
extra_classes = icon_kwargs.get("extra_classes", "")

# Remember the name, we do not allow this to be overwritten
remember_name = icon_kwargs["name"]

# Update with kwargs
icon_kwargs.update(kwargs)

# Merge args with extra_classes
extra_classes = merge_css_list(args, kwargs.get("extra_classes", ""))
extra_classes = merge_css_list(extra_classes, args, kwargs.get("extra_classes", ""))
if extra_classes:
icon_kwargs["extra_classes"] = extra_classes

# Check the name
assert icon_kwargs["name"] == remember_name, "Overwriting the icon name is not allowed"

# Return the dict
return icon_kwargs


Expand Down
5 changes: 5 additions & 0 deletions tests/app/settings.py
Expand Up @@ -59,5 +59,10 @@
"edit": {"name": "pencil", "title": "Edit"},
"feather": {"renderer": "tests.app.renderers.CustomSvgRenderer"},
"paperplane": {"renderer": "tests.app.renderers.CustomSvgRenderer"},
"extra-triangle": {
"name": "fas fa-triangle fa-fw",
"extra_classes": "extra",
"renderer": "django_icons.renderers.BaseRenderer",
},
},
}
10 changes: 10 additions & 0 deletions tests/test_base.py
Expand Up @@ -21,3 +21,13 @@ def test_icons(self):
render_template('{% icon "fas fa-user fa-2x" size="lg" renderer="BaseRenderer" %}'),
'<i class="fas fa-user fa-2x"></i>',
)

def test_extra_classes(self):
self.assertEqual(
render_template('{% icon "extra-triangle" %}'),
'<i class="fas fa-triangle fa-fw extra"></i>',
)
self.assertEqual(
render_template('{% icon "extra-triangle" extra_classes="and more" %}'),
'<i class="fas fa-triangle fa-fw extra and more"></i>',
)

0 comments on commit 27bc03e

Please sign in to comment.