[Checkins] SVN: grokcore.viewlet/trunk/ add the available() method on viewlets, check for by the viewlet manager
Jan-Wijbrand Kolman
janwijbrand at gmail.com
Mon Jun 27 06:24:34 EDT 2011
Log message for revision 121985:
add the available() method on viewlets, check for by the viewlet manager
Changed:
U grokcore.viewlet/trunk/CHANGES.txt
U grokcore.viewlet/trunk/src/grokcore/viewlet/components.py
U grokcore.viewlet/trunk/src/grokcore/viewlet/ftesting.zcml
A grokcore.viewlet/trunk/src/grokcore/viewlet/ftests/viewlet/viewlet_available_templates/
A grokcore.viewlet/trunk/src/grokcore/viewlet/ftests/viewlet/viewlet_available_templates/bonesview.pt
D grokcore.viewlet/trunk/src/grokcore/viewlet/ftests/viewlet/viewlet_available_templates/caveview.pt
-=-
Modified: grokcore.viewlet/trunk/CHANGES.txt
===================================================================
--- grokcore.viewlet/trunk/CHANGES.txt 2011-06-27 09:11:02 UTC (rev 121984)
+++ grokcore.viewlet/trunk/CHANGES.txt 2011-06-27 10:24:32 UTC (rev 121985)
@@ -4,9 +4,11 @@
1.9 (unreleased)
----------------
-- Nothing changed yet.
+- Introduce the `available()` method on viewlet component. The viewlet
+ manager will filter out unavailable viewlet by calling this method. The
+ `available()` method is called *after* the viewlet's `update()` is called,
+ but *before* the `render()` is called.
-
1.8 (2010-12-16)
----------------
Modified: grokcore.viewlet/trunk/src/grokcore/viewlet/components.py
===================================================================
--- grokcore.viewlet/trunk/src/grokcore/viewlet/components.py 2011-06-27 09:11:02 UTC (rev 121984)
+++ grokcore.viewlet/trunk/src/grokcore/viewlet/components.py 2011-06-27 10:24:32 UTC (rev 121985)
@@ -73,6 +73,12 @@
def namespace(self):
return {}
+ def update(self):
+ super(ViewletManager, self).update()
+ # Filter out the unavailable viewlets *after* the viewlet's update()
+ # has been called.
+ self.viewlets = filter(lambda v: v.available(), self.viewlets)
+
def render(self):
"""See zope.contentprovider.interfaces.IContentProvider"""
# Now render the view
@@ -115,5 +121,13 @@
def update(self):
pass
+ def available(self):
+ """Return True if this viewlet is to be rendered. False otherwise.
+
+ Note that the available() method is called *after* update() but
+ *before* render() but has been called.
+ """
+ return True
+
def render(self):
return self.template.render(self)
Modified: grokcore.viewlet/trunk/src/grokcore/viewlet/ftesting.zcml
===================================================================
--- grokcore.viewlet/trunk/src/grokcore/viewlet/ftesting.zcml 2011-06-27 09:11:02 UTC (rev 121984)
+++ grokcore.viewlet/trunk/src/grokcore/viewlet/ftesting.zcml 2011-06-27 10:24:32 UTC (rev 121985)
@@ -25,6 +25,7 @@
<include package="zope.annotation" />
<include package="zope.principalregistry" />
<include package="zope.contentprovider" />
+ <include package="zope.publisher" />
<include package="zope.app.appsetup" />
<include package="zope.app.publication" />
<include package="grokcore.viewlet" />
Copied: grokcore.viewlet/trunk/src/grokcore/viewlet/ftests/viewlet/viewlet_available_templates/bonesview.pt (from rev 121984, grokcore.viewlet/trunk/src/grokcore/viewlet/ftests/viewlet/viewlet_security_templates/caveview.pt)
===================================================================
--- grokcore.viewlet/trunk/src/grokcore/viewlet/ftests/viewlet/viewlet_available_templates/bonesview.pt (rev 0)
+++ grokcore.viewlet/trunk/src/grokcore/viewlet/ftests/viewlet/viewlet_available_templates/bonesview.pt 2011-06-27 10:24:32 UTC (rev 121985)
@@ -0,0 +1 @@
+<span tal:replace="provider:bones" />
Deleted: grokcore.viewlet/trunk/src/grokcore/viewlet/ftests/viewlet/viewlet_available_templates/caveview.pt
===================================================================
--- grokcore.viewlet/trunk/src/grokcore/viewlet/ftests/viewlet/viewlet_security_templates/caveview.pt 2011-06-27 09:11:02 UTC (rev 121984)
+++ grokcore.viewlet/trunk/src/grokcore/viewlet/ftests/viewlet/viewlet_available_templates/caveview.pt 2011-06-27 10:24:32 UTC (rev 121985)
@@ -1 +0,0 @@
-<span tal:replace="provider:pot" />
More information about the checkins
mailing list