No project description provided
Project description
Wagtail Icons
Wagtail Icons is package that allows you to add icons (in svg format) on your page, divide them on groups, resize and style displayed icons.
Install
pip install wagtail-svg-icons
Then add wagtail_icons
and generic_chooser
to your installed apps:
INSTALLED_APPS = [
...
'wagtail_icons',
'generic_chooser',
...
]
Usage
IconsField, IconsChooserPanel and IconsChooserBlock
IconsField - Subclass of ForeignKey Field with many-to-one relationship with Icon model. Have all arguments of ForeignKey with defaults:
- on_delete=models.SET_NULL
- null=True
- blank=True
IconsChooserPanel - Subclass of FieldPanel
Extra (optional) argument:
- group - slug of the group from which icons can be choosen. If not specified all available icons will be displayed.
IconsChooserBlock - Subclass of ChooserBlock
Extra (optional) argument:
- group - slug of the group from which icons can be choosen. If not specified all available icons will be displayed.
from wagtail_icons.edit_handlers import IconsChooserPanel
from wagtail_icons.fields import IconsField
from wagtail_icons.blocks import IconsChooserBlock
from wagtail.admin.edit_handlers import StreamFieldPanel
try:
from wagtail.fields import StreamField
from wagtail.models import Page
from wagtail import blocks
except ImportError:
# wagtail version under 3.0
from wagtail.core.fields import StreamField
from wagtail.core import blocks
from wagtail.core.models import Page
class HomePage(Page):
icon = IconsField()
body = StreamField([
('block_icon', IconsChooserBlock(group='some_group', required=False)),
], blank=True)
content_panels = Page.content_panels + [
IconsChooserPanel('icon', group='another_group'),
StreamFieldPanel('body'),
]
How to use Icons in templates
The 'icon' tag inserts svg element into page, setting its size and custom_class (if specified). To use 'icon' tag load 'wagtail_icons_tags'
{% load wagtail_icons_tags %}
Icon tag required arguments:
- icon - instance of Icon model
Icon tag optional arguments:
- size - icon resize given in format "HEIGHTxWIDTH"
- class_name - icon class name that can be used to css styling
- color - custom icon color
Example usage
<!-- Display original size icon -->
{% icon self.icon %}
<!-- Display icon scaled to width 200 and height 250 -->
{% icon self.icon size='250x200' class_name='filter-green' %}
<!-- Display icon scaled to width 200 and height 200 and with class 'my-icon'-->
{% icon self.icon size='200x200' class_name='my-icon' %}
<!-- Display icon scaled to width 200 and height 200 and in color #81b29a-->
{% icon self.icon size='200x200' class_name='my-icon' color='#81b29a' %}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file wagtail-svg-icons-0.0.2.tar.gz
.
File metadata
- Download URL: wagtail-svg-icons-0.0.2.tar.gz
- Upload date:
- Size: 27.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d5765a1367336bcb02221a140b3383682b8ba3d36d0c56e5a336b56233d405d4 |
|
MD5 | 70c7cb2694f4d49202bbb6f8c7d7461b |
|
BLAKE2b-256 | 63132ba6ec71c30c9d7af59365ff0347546a80313d5c39c61d4129d97d39f9a0 |
File details
Details for the file wagtail_svg_icons-0.0.2-py3-none-any.whl
.
File metadata
- Download URL: wagtail_svg_icons-0.0.2-py3-none-any.whl
- Upload date:
- Size: 41.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 583480855f395f6231e6a8d3b0afffa80d98110007f234cf754b875e8de6b2ee |
|
MD5 | e30c85240c9f38b5daba76b80274d091 |
|
BLAKE2b-256 | 92ce3577e32a79007a2f34db732838b57624450d63389c3e81dac64578bf50fd |