From 724f15c006f7ab7cd3be37fc84288d5f2d11361a Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Mon, 22 Apr 2019 18:28:55 -0400 Subject: [PATCH] Add new icons classes and templates Signed-off-by: Roberto Rosario --- HISTORY.rst | 1 + docs/releases/3.2.rst | 1 + mayan/apps/appearance/classes.py | 62 ++++++++++++++++++- .../appearance/icons/font_awesome_css.html | 2 +- .../appearance/icons/font_awesome_layers.html | 5 ++ .../appearance/icons/font_awesome_masks.html | 1 + .../appearance/icons/font_awesome_symbol.html | 2 +- 7 files changed, 69 insertions(+), 5 deletions(-) create mode 100644 mayan/apps/appearance/templates/appearance/icons/font_awesome_layers.html create mode 100644 mayan/apps/appearance/templates/appearance/icons/font_awesome_masks.html diff --git a/HISTORY.rst b/HISTORY.rst index 68c5effbad..c6cadf3e94 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -111,6 +111,7 @@ * Remove the include fontawesome and download it from the NPMregistry. * Fix issue installing scoped NPM packages. +* Add new icons classes and templates. 3.1.11 (2019-04-XX) =================== diff --git a/docs/releases/3.2.rst b/docs/releases/3.2.rst index 58c897980a..1bd5ce7a58 100644 --- a/docs/releases/3.2.rst +++ b/docs/releases/3.2.rst @@ -143,6 +143,7 @@ Other changes * Remove the include fontawesome and download it from the NPMregistry. * Fix issue installing scoped NPM packages. +* Add new icons classes and templates. Removals -------- diff --git a/mayan/apps/appearance/classes.py b/mayan/apps/appearance/classes.py index 53ee859a7f..97f688d795 100644 --- a/mayan/apps/appearance/classes.py +++ b/mayan/apps/appearance/classes.py @@ -23,11 +23,38 @@ class FontAwesomeDriver(IconDriver): self.symbol = symbol def render(self): - return get_template(self.template_name).render( + return get_template(template_name=self.template_name).render( context={'symbol': self.symbol} ) +class FontAwesomeDualDriver(IconDriver): + name = 'fontawesome-dual' + template_name = 'appearance/icons/font_awesome_layers.html' + + def __init__(self, primary_symbol, secondary_symbol): + self.primary_symbol = primary_symbol + self.secondary_symbol = secondary_symbol + + def render(self): + return get_template(template_name=self.template_name).render( + context={ + 'data': ( + { + 'class': 'fas fa-circle', + 'transform': 'down-3 right-10', + 'mask': 'fas fa-{}'.format(self.primary_symbol) + }, + {'class': 'far fa-circle', 'transform': 'down-3 right-10'}, + { + 'class': 'fas fa-{}'.format(self.secondary_symbol), + 'transform': 'shrink-4 down-3 right-10' + }, + ) + } + ) + + class FontAwesomeCSSDriver(IconDriver): name = 'fontawesomecss' template_name = 'appearance/icons/font_awesome_css.html' @@ -36,11 +63,37 @@ class FontAwesomeCSSDriver(IconDriver): self.css_classes = css_classes def render(self): - return get_template(self.template_name).render( + return get_template(template_name=self.template_name).render( context={'css_classes': self.css_classes} ) +class FontAwesomeMasksDriver(IconDriver): + name = 'fontawesome-masks' + template_name = 'appearance/icons/font_awesome_masks.html' + + def __init__(self, data): + self.data = data + + def render(self): + return get_template(template_name=self.template_name).render( + context={'data': self.data} + ) + + +class FontAwesomeLayersDriver(IconDriver): + name = 'fontawesome-layers' + template_name = 'appearance/icons/font_awesome_layers.html' + + def __init__(self, data): + self.data = data + + def render(self): + return get_template(template_name=self.template_name).render( + context={'data': self.data} + ) + + class Icon(object): def __init__(self, driver_name, **kwargs): self.driver = IconDriver.get(name=driver_name)(**kwargs) @@ -49,5 +102,8 @@ class Icon(object): return self.driver.render(**kwargs) -IconDriver.register(driver_class=FontAwesomeDriver) IconDriver.register(driver_class=FontAwesomeCSSDriver) +IconDriver.register(driver_class=FontAwesomeDriver) +IconDriver.register(driver_class=FontAwesomeDualDriver) +IconDriver.register(driver_class=FontAwesomeLayersDriver) +IconDriver.register(driver_class=FontAwesomeMasksDriver) diff --git a/mayan/apps/appearance/templates/appearance/icons/font_awesome_css.html b/mayan/apps/appearance/templates/appearance/icons/font_awesome_css.html index 5975cc6d66..112f741764 100644 --- a/mayan/apps/appearance/templates/appearance/icons/font_awesome_css.html +++ b/mayan/apps/appearance/templates/appearance/icons/font_awesome_css.html @@ -1 +1 @@ - + diff --git a/mayan/apps/appearance/templates/appearance/icons/font_awesome_layers.html b/mayan/apps/appearance/templates/appearance/icons/font_awesome_layers.html new file mode 100644 index 0000000000..4356ad89e1 --- /dev/null +++ b/mayan/apps/appearance/templates/appearance/icons/font_awesome_layers.html @@ -0,0 +1,5 @@ + + {% for entry in data %} + + {% endfor %} + diff --git a/mayan/apps/appearance/templates/appearance/icons/font_awesome_masks.html b/mayan/apps/appearance/templates/appearance/icons/font_awesome_masks.html new file mode 100644 index 0000000000..ef345c4d21 --- /dev/null +++ b/mayan/apps/appearance/templates/appearance/icons/font_awesome_masks.html @@ -0,0 +1 @@ + diff --git a/mayan/apps/appearance/templates/appearance/icons/font_awesome_symbol.html b/mayan/apps/appearance/templates/appearance/icons/font_awesome_symbol.html index 8ddd586fdd..fac6aeca4d 100644 --- a/mayan/apps/appearance/templates/appearance/icons/font_awesome_symbol.html +++ b/mayan/apps/appearance/templates/appearance/icons/font_awesome_symbol.html @@ -1 +1 @@ - +