Dependencies are the same for all instances, so convert to classmethod.

This commit is contained in:
Emil Stenström 2015-06-14 14:28:43 +02:00
parent 143918e2cf
commit 33b1930ed5

View file

@ -5,25 +5,23 @@ class Component(object):
CSS_TEMPLATE = '<link href="{}" type="text/css" media="{}" rel="stylesheet" />' CSS_TEMPLATE = '<link href="{}" type="text/css" media="{}" rel="stylesheet" />'
JS_TEMPLATE = '<script type="text/javascript" src="{}"></script>' JS_TEMPLATE = '<script type="text/javascript" src="{}"></script>'
def __init__(self):
self._media = self.Media()
def context(self): def context(self):
return {} return {}
def render_dependencies(self): @classmethod
def render_dependencies(cls):
out = [] out = []
for css_media, css_path in self._media.css.items(): for css_media, css_path in cls.Media.css.items():
out.append(Component.CSS_TEMPLATE.format(css_path, css_media)) out.append(cls.CSS_TEMPLATE.format(css_path, css_media))
for js_path in self._media.js: for js_path in cls.Media.js:
out.append(Component.JS_TEMPLATE.format(js_path)) out.append(cls.JS_TEMPLATE.format(js_path))
return "\n".join(out) return "\n".join(out)
def render(self, *args, **kwargs): def render(self, *args, **kwargs):
return render_to_string(self._media.template, self.context(*args, **kwargs)) return render_to_string(self.Media.template, self.context(*args, **kwargs))
class Media: class Media:
template = None template = None