From ca9f9e3d16e8c84ab3958bf51ea78da09a089ea8 Mon Sep 17 00:00:00 2001 From: Paul Everitt Date: Fri, 18 Jul 2008 14:23:58 +0000 Subject: Using Chris's help, changed signature of interface to support what the XSLT processors expects. Fixed tests to assert that interface. --- repoze/bfg/template.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'repoze/bfg/template.py') diff --git a/repoze/bfg/template.py b/repoze/bfg/template.py index 78529eb40..8ade2fb74 100644 --- a/repoze/bfg/template.py +++ b/repoze/bfg/template.py @@ -11,6 +11,7 @@ from zope.interface import implements from webob import Response from repoze.bfg.interfaces import IView +from repoze.bfg.interfaces import INodeView from repoze.bfg.interfaces import ITemplateFactory class Z3CPTTemplateFactory(object): @@ -28,15 +29,14 @@ class Z3CPTTemplateFactory(object): class XSLTemplateFactory(object): classProvides(ITemplateFactory) - implements(IView) + implements(INodeView) def __init__(self, path): self.path = path - def __call__(self, *arg, **kw): - node = kw.get("node") + def __call__(self, node, **kw): processor = get_processor(self.path) - result = str(processor(node)) + result = str(processor(node, **kw)) response = Response(result) return response @@ -92,7 +92,7 @@ def render_template(path, **kw): return template(**kw) -def render_transform(path, **kw): +def render_transform(path, node, **kw): """ Render a XSL template at the package-relative path (may also be absolute) using the kwargs in ``*kw`` as top-level names and return a Response object.""" @@ -106,11 +106,10 @@ def render_transform(path, **kw): path = os.path.join(prefix, path) template = queryUtility(IView, path) - node = kw.get("node") if template is None: if not os.path.exists(path): raise ValueError('Missing template file: %s' % path) template = XSLTemplateFactory(path) registerTemplate(template, path) - return template(**kw) + return template(node, **kw) -- cgit v1.2.3