summaryrefslogtreecommitdiff
path: root/repoze/bfg/template.py
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2008-07-08 04:37:07 +0000
committerChris McDonough <chrism@agendaless.com>2008-07-08 04:37:07 +0000
commit4bf7723f67b49cb14f0d82511a924adc1147505c (patch)
treecd60d3acdb8deca1cbc40b984dbadedb71ccafc3 /repoze/bfg/template.py
parent703422d397607eefb5fe695c657e5b59991ed9c1 (diff)
downloadpyramid-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.py40
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)
+