diff options
| author | Chris McDonough <chrism@agendaless.com> | 2008-07-08 04:37:07 +0000 |
|---|---|---|
| committer | Chris McDonough <chrism@agendaless.com> | 2008-07-08 04:37:07 +0000 |
| commit | 4bf7723f67b49cb14f0d82511a924adc1147505c (patch) | |
| tree | cd60d3acdb8deca1cbc40b984dbadedb71ccafc3 /repoze/bfg/template.py | |
| parent | 703422d397607eefb5fe695c657e5b59991ed9c1 (diff) | |
| download | pyramid-4bf7723f67b49cb14f0d82511a924adc1147505c.tar.gz pyramid-4bf7723f67b49cb14f0d82511a924adc1147505c.tar.bz2 pyramid-4bf7723f67b49cb14f0d82511a924adc1147505c.zip | |
Add a browser:page directive type and make our sample app use it.
Diffstat (limited to 'repoze/bfg/template.py')
| -rw-r--r-- | repoze/bfg/template.py | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/repoze/bfg/template.py b/repoze/bfg/template.py new file mode 100644 index 000000000..eb1dda816 --- /dev/null +++ b/repoze/bfg/template.py @@ -0,0 +1,40 @@ +from zope.interface import classProvides +from zope.interface import implements + +from z3c.pt import PageTemplateFile as PageTemplateFileBase +from webob import Response + +from repoze.bfg.interfaces import IViewFactory +from repoze.bfg.interfaces import IView + + +class PageTemplateFile(PageTemplateFileBase): + def render(self, *arg, **kw): + result = PageTemplateFileBase.render(self, *arg, **kw) + return Response(result) + +class ViewPageTemplateFile(property): + def __init__(self, filename, **kwargs): + self.template = PageTemplateFile(filename, **kwargs) + property.__init__(self, self.render) + + def render(self, view): + def template(**kwargs): + return self.template.render(view=view, + context=view.context, + request=view.request, + options=kwargs) + return template + +class BrowserView(object): + classProvides(IViewFactory) + implements(IView) + + def __init__(self, context, request): + self.context = context + self.request = request + + def __call__(self, *arg, **kw): + """ See metaconfigure.py to see where 'index' comes from """ + return self.index(*arg, **kw) + |
