[Checkins] SVN: grok/trunk/src/grok/ implemented before-method.
Wolfgang Schnerring
wosc at wosc.de
Mon Oct 16 10:25:02 EDT 2006
Log message for revision 70694:
implemented before-method.
Changed:
U grok/trunk/src/grok/_grok.py
A grok/trunk/src/grok/tests/view/before.py
-=-
Modified: grok/trunk/src/grok/_grok.py
===================================================================
--- grok/trunk/src/grok/_grok.py 2006-10-16 14:18:36 UTC (rev 70693)
+++ grok/trunk/src/grok/_grok.py 2006-10-16 14:25:01 UTC (rev 70694)
@@ -41,6 +41,8 @@
class View(BrowserPage):
def __call__(self):
+ self.before()
+
template = getattr(self, 'template', None)
if not template:
return self.render()
@@ -51,6 +53,9 @@
namespace['context'] = self.context
return template.pt_render(namespace)
+ def before(self):
+ pass
+
class PageTemplate(TrustedAppPT, pagetemplate.PageTemplate):
expand = 0
Added: grok/trunk/src/grok/tests/view/before.py
===================================================================
--- grok/trunk/src/grok/tests/view/before.py 2006-10-16 14:18:36 UTC (rev 70693)
+++ grok/trunk/src/grok/tests/view/before.py 2006-10-16 14:25:01 UTC (rev 70694)
@@ -0,0 +1,38 @@
+"""
+Before a view is rendered, the before() method is executed. It can be
+used e. g. to execute side effects or set up data for use in the
+template.
+
+ >>> grok.grok(__name__)
+
+ >>> manfred = Mammoth()
+ >>> from zope.publisher.browser import TestRequest
+ >>> request = TestRequest()
+ >>> from zope import component
+ >>> view = component.getMultiAdapter((manfred, request), name='cavepainting')
+ >>> print view()
+ <html>
+ <body>
+ <h1>red</h1>
+ </body>
+ </html>
+
+
+"""
+import grok
+
+class Mammoth(grok.Model):
+ pass
+
+class CavePainting(grok.View):
+ def before(self):
+ self.color = "red"
+
+
+cavepainting = grok.PageTemplate("""\
+<html>
+<body>
+<h1 tal:content="python: view.color"/>
+</body>
+</html>
+""")
More information about the Checkins
mailing list