dynamicweb/cms/templates.py

31 lines
1 KiB
Python

from django.template.loader import get_template
from django.utils.functional import cached_property
class TemplatesCache:
def __init__(self):
self._cached_templates = {}
def get_cached_template(self, template):
# we check if template quacks like a Template, as generic Template and engine-specific Template
# does not share a common ancestor
if hasattr(template, 'render'):
return template
if template not in self._cached_templates:
# this always return an engine-specific template object
self._cached_templates[template] = get_template(template)
return self._cached_templates[template]
@cached_property
def drag_item_template(self):
return get_template('cms/toolbar/dragitem.html')
@cached_property
def placeholder_plugin_menu_template(self):
return get_template('cms/toolbar/dragitem_menu.html')
@cached_property
def dragbar_template(self):
return get_template('cms/toolbar/dragbar.html')