summaryrefslogtreecommitdiff
path: root/repoze/bfg/chameleon_zpt.py
diff options
context:
space:
mode:
Diffstat (limited to 'repoze/bfg/chameleon_zpt.py')
-rw-r--r--repoze/bfg/chameleon_zpt.py46
1 files changed, 22 insertions, 24 deletions
diff --git a/repoze/bfg/chameleon_zpt.py b/repoze/bfg/chameleon_zpt.py
index c66a69e66..b4be1a4fc 100644
--- a/repoze/bfg/chameleon_zpt.py
+++ b/repoze/bfg/chameleon_zpt.py
@@ -1,65 +1,63 @@
from webob import Response
from zope.component import queryUtility
-
-from zope.interface import classProvides
from zope.interface import implements
from repoze.bfg.interfaces import IResponseFactory
from repoze.bfg.interfaces import ITemplateRenderer
-from repoze.bfg.interfaces import ITemplateRendererFactory
-from repoze.bfg.templating import renderer_from_cache
-from repoze.bfg.templating import _auto_reload
from chameleon.zpt.template import PageTemplateFile
+from repoze.bfg.renderers import template_renderer_factory
+from repoze.bfg.settings import get_settings
+
+def renderer_factory(path, level=4):
+ return template_renderer_factory(path, ZPTTemplateRenderer, level=4)
+
class ZPTTemplateRenderer(object):
- classProvides(ITemplateRendererFactory)
implements(ITemplateRenderer)
-
- def __init__(self, path, auto_reload=False):
+ def __init__(self, path):
+ settings = get_settings()
+ auto_reload = settings and settings['reload_templates']
self.template = PageTemplateFile(path, auto_reload=auto_reload)
def implementation(self):
return self.template
- def __call__(self, **kw):
+ def __call__(self, kw):
return self.template(**kw)
def get_renderer(path):
""" Return a callable ``ITemplateRenderer`` object representing a
``chameleon.zpt`` template at the package-relative path (may also
be absolute). """
- auto_reload = _auto_reload()
- renderer = renderer_from_cache(path, ZPTTemplateRenderer,
- auto_reload=auto_reload)
- return renderer
+ return renderer_factory(path)
def get_template(path):
""" Return a ``chameleon.zpt`` template at the package-relative
path (may also be absolute). """
- auto_reload = _auto_reload()
- renderer = renderer_from_cache(path, ZPTTemplateRenderer,
- auto_reload=auto_reload)
+ renderer = renderer_factory(path)
return renderer.implementation()
def render_template(path, **kw):
""" Render a ``chameleon.zpt`` template at the package-relative
path (may also be absolute) using the kwargs in ``*kw`` as
top-level names and return a string."""
- auto_reload = _auto_reload()
- renderer = renderer_from_cache(path, ZPTTemplateRenderer,
- auto_reload=auto_reload)
- return renderer(**kw)
+ renderer = renderer_factory(path)
+ return renderer(kw)
def render_template_to_response(path, **kw):
""" Render a ``chameleon.zpt`` template at the package-relative
path (may also be absolute) using the kwargs in ``*kw`` as
top-level names and return a Response object with the body as the
template result. """
- auto_reload = _auto_reload()
- renderer = renderer_from_cache(path, ZPTTemplateRenderer,
- auto_reload=auto_reload)
- result = renderer(**kw)
+ renderer = renderer_factory(path)
+ result = renderer(kw)
response_factory = queryUtility(IResponseFactory, default=Response)
return response_factory(result)
+
+def _auto_reload():
+ settings = get_settings()
+ if settings:
+ return settings['reload_templates']
+ return False