Files
mayan-edms/mayan/apps/appearance/classes.py
Roberto Rosario 62e221ffbb Make icon classes file template based.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2018-09-17 17:08:15 -04:00

54 lines
1.3 KiB
Python

from __future__ import unicode_literals
from django.template.loader import get_template
class IconDriver(object):
_registry = {}
@classmethod
def get(cls, name):
return cls._registry[name]
@classmethod
def register(cls, driver_class):
cls._registry[driver_class.name] = driver_class
class FontAwesomeDriver(IconDriver):
name = 'fontawesome'
template_name = 'appearance/icons/font_awesome_symbol.html'
def __init__(self, symbol):
self.symbol = symbol
def render(self):
return get_template(self.template_name).render(
context={'symbol': self.symbol}
)
class FontAwesomeCSSDriver(IconDriver):
name = 'fontawesomecss'
template_name = 'appearance/icons/font_awesome_css.html'
def __init__(self, css_classes):
self.css_classes = css_classes
def render(self):
return get_template(self.template_name).render(
context={'css_classes': self.css_classes}
)
class Icon(object):
def __init__(self, driver_name, **kwargs):
self.driver = IconDriver.get(name=driver_name)(**kwargs)
def render(self, **kwargs):
return self.driver.render(**kwargs)
IconDriver.register(driver_class=FontAwesomeDriver)
IconDriver.register(driver_class=FontAwesomeCSSDriver)