summaryrefslogtreecommitdiff
path: root/repoze/bfg/template.py
blob: b73a095f308050f04c3e88a037eda5c91f14e3ae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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, template):
        self.template = template
        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 TemplateView(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)