summaryrefslogtreecommitdiff
path: root/repoze/bfg/view.py
blob: 07c3d183da651515e5591a2c46c9ff66939a55c8 (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
from repoze.bfg.template import render_template

class View(object):
    """ Convenience base class for user-defined views """
    def __init__(self, context, request):
        self.context = context
        self.request = request

    def __call__(self, **kw):
        raise NotImplementedError

class TemplateView(View):
    template = None
    def __call__(self, **kw):
        if self.template is None:
            raise ValueError('a "template" attribute must be attached to '
                             'a TemplateView')
        return render_template(self, self.template, **kw)

    def __repr__(self):
        klass = self.__class__
        return '<%s.%s object at %s for %s>' % (klass.__module__,
                                                klass.__mame__,
                                                id(self),
                                                self.template)