[Checkins] SVN: grokcore.viewlet/trunk/ make the has_render() and has_no_render() checks in the template grokkker symmetrical to the checks in grokcore.view, grokcore.layout and grokcore.formlib
Jan Wijbrand Kolman
cvs-admin at zope.org
Tue Sep 4 10:15:32 UTC 2012
Log message for revision 127682:
make the has_render() and has_no_render() checks in the template grokkker symmetrical to the checks in grokcore.view, grokcore.layout and grokcore.formlib
Changed:
U grokcore.viewlet/trunk/CHANGES.txt
U grokcore.viewlet/trunk/src/grokcore/viewlet/components.py
U grokcore.viewlet/trunk/src/grokcore/viewlet/meta.py
-=-
Modified: grokcore.viewlet/trunk/CHANGES.txt
===================================================================
--- grokcore.viewlet/trunk/CHANGES.txt 2012-09-03 20:35:55 UTC (rev 127681)
+++ grokcore.viewlet/trunk/CHANGES.txt 2012-09-04 10:15:27 UTC (rev 127682)
@@ -4,9 +4,10 @@
1.10.2 (unreleased)
-------------------
-- Nothing changed yet.
+- Make the ``has_render()`` and ``has_no_render()`` symmetrical to those
+ in grokcore.view, grokcore.layout and grokcore.formlib, where a
+ ``render.base_method`` attribute is checked.
-
1.10.1 (2012-05-02)
-------------------
Modified: grokcore.viewlet/trunk/src/grokcore/viewlet/components.py
===================================================================
--- grokcore.viewlet/trunk/src/grokcore/viewlet/components.py 2012-09-03 20:35:55 UTC (rev 127681)
+++ grokcore.viewlet/trunk/src/grokcore/viewlet/components.py 2012-09-04 10:15:27 UTC (rev 127682)
@@ -75,6 +75,9 @@
return self.template.render(self)
else:
return u'\n'.join([viewlet.render() for viewlet in self.viewlets])
+ # Mark the render() method as a method from the base class. That
+ # way we can detect whether somebody overrides render() in a subclass.
+ render.base_method = True
class Viewlet(ViewletBase):
@@ -123,3 +126,6 @@
def render(self):
return self.template.render(self)
+ # Mark the render() method as a method from the base class. That
+ # way we can detect whether somebody overrides render() in a subclass.
+ render.base_method = True
Modified: grokcore.viewlet/trunk/src/grokcore/viewlet/meta.py
===================================================================
--- grokcore.viewlet/trunk/src/grokcore/viewlet/meta.py 2012-09-03 20:35:55 UTC (rev 127681)
+++ grokcore.viewlet/trunk/src/grokcore/viewlet/meta.py 2012-09-04 10:15:27 UTC (rev 127682)
@@ -32,7 +32,9 @@
martian.component(grokcore.viewlet.ViewletManager)
def has_render(self, factory):
- return factory.render != components.ViewletManager.render
+ render = getattr(factory, 'render', None)
+ base_method = getattr(render, 'base_method', False)
+ return render and not base_method
def has_no_render(self, factory):
# always has a render method
@@ -68,12 +70,13 @@
martian.component(grokcore.viewlet.Viewlet)
def has_render(self, factory):
- return factory.render != components.Viewlet.render
+ render = getattr(factory, 'render', None)
+ base_method = getattr(render, 'base_method', False)
+ return render and not base_method
def has_no_render(self, factory):
return not self.has_render(factory)
-
class ViewletGrokker(martian.ClassGrokker):
martian.component(grokcore.viewlet.Viewlet)
martian.directive(grokcore.component.context)
More information about the checkins
mailing list