From 5babbaf48a71af786d41f59a1f1f7d5272a60a4d Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Thu, 17 Dec 2009 01:17:48 +0000 Subject: - When Chameleon page or text templates were added imperatively (via ``Configurator.add_view`` or some derivative), they too-eagerly attempted to look up the ``reload_templates`` setting via ``get_settings``, meaning they were always registered in non-auto-reload-mode (the default). Each now waits until its respective ``template`` attribute is accessed to look up the value. --- repoze/bfg/chameleon_text.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'repoze/bfg/chameleon_text.py') diff --git a/repoze/bfg/chameleon_text.py b/repoze/bfg/chameleon_text.py index 50491a3d0..9cb1c989a 100644 --- a/repoze/bfg/chameleon_text.py +++ b/repoze/bfg/chameleon_text.py @@ -20,6 +20,7 @@ except ImportError: # pragma: no cover from repoze.bfg.interfaces import IResponseFactory from repoze.bfg.interfaces import ITemplateRenderer +from repoze.bfg.decorator import reify from repoze.bfg.renderers import template_renderer_factory from repoze.bfg.settings import get_settings from repoze.bfg.threadlocal import get_current_registry @@ -40,9 +41,13 @@ def renderer_factory(path): class TextTemplateRenderer(object): implements(ITemplateRenderer) def __init__(self, path): + self.path = path + + @reify + def template(self): settings = get_settings() auto_reload = settings and settings['reload_templates'] - self.template = TextTemplateFile(path, auto_reload=auto_reload) + return TextTemplateFile(self.path, auto_reload=auto_reload) def implementation(self): return self.template -- cgit v1.2.3