forked from ungleich-public/dynamicweb
31 lines
1 KiB
Python
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')
|