[Checkins] SVN: megrok.layout/trunk/ Use new TemplateGrokker

Sylvain Viollon sylvain at infrae.com
Tue Dec 7 10:50:21 EST 2010


Log message for revision 118747:
  Use new TemplateGrokker

Changed:
  U   megrok.layout/trunk/docs/HISTORY.txt
  U   megrok.layout/trunk/setup.py
  U   megrok.layout/trunk/src/megrok/layout/meta.py
  U   megrok.layout/trunk/src/megrok/layout/tests/errors/norenderortemplatelayout.py
  U   megrok.layout/trunk/src/megrok/layout/tests/errors/renderandtemplate.py

-=-
Modified: megrok.layout/trunk/docs/HISTORY.txt
===================================================================
--- megrok.layout/trunk/docs/HISTORY.txt	2010-12-07 15:42:47 UTC (rev 118746)
+++ megrok.layout/trunk/docs/HISTORY.txt	2010-12-07 15:50:20 UTC (rev 118747)
@@ -1,6 +1,11 @@
 Changelog
 =========
 
+1.2.0 (unreleased)
+------------------
+
+- Update to use the new TemplateGrokker from grokcore.view.
+
 1.1.0 (2010-03-03)
 ------------------
 

Modified: megrok.layout/trunk/setup.py
===================================================================
--- megrok.layout/trunk/setup.py	2010-12-07 15:42:47 UTC (rev 118746)
+++ megrok.layout/trunk/setup.py	2010-12-07 15:50:20 UTC (rev 118747)
@@ -17,7 +17,7 @@
     ]
 
 setup(name='megrok.layout',
-      version='1.1.0',
+      version='1.2.0dev',
       description="A layout component package for zope3 and Grok.",
       long_description = long_description,
       classifiers=[

Modified: megrok.layout/trunk/src/megrok/layout/meta.py
===================================================================
--- megrok.layout/trunk/src/megrok/layout/meta.py	2010-12-07 15:42:47 UTC (rev 118746)
+++ megrok.layout/trunk/src/megrok/layout/meta.py	2010-12-07 15:50:20 UTC (rev 118747)
@@ -5,8 +5,23 @@
 import grokcore.component
 from megrok.layout import ILayout, Layout
 from zope.publisher.interfaces.browser import IDefaultBrowserLayer
+from grokcore.view.meta.views import TemplateGrokker
 
 
+class LayoutTemplateGrokker(TemplateGrokker):
+    martian.component(Layout)
+
+    def has_render(self, factory):
+        render = getattr(factory, 'render', None)
+        base_method = getattr(render, 'base_method', False)
+        return render and not base_method
+
+    def has_no_render(self, factory):
+        render = getattr(factory, 'render', None)
+        base_method = getattr(render, 'base_method', False)
+        return render is None or base_method
+
+
 class LayoutGrokker(martian.ClassGrokker):
     martian.component(Layout)
     martian.directive(grokcore.component.context)
@@ -18,14 +33,6 @@
             name, factory, module_info, **kw)
 
     def execute(self, factory, config, context, layer, **kw):
-        # find templates
-        templates = factory.module_info.getAnnotation('grok.templates', None)
-        if templates is not None:
-            config.action(
-                discriminator=None,
-                callable=self.checkTemplates,
-                args=(templates, factory.module_info, factory))
-
         adapts = (layer, context)
         config.action(
             discriminator=('adapter', adapts, ILayout),
@@ -33,17 +40,3 @@
             args=(factory, adapts, ILayout),
             )
         return True
-
-    def checkTemplates(self, templates, module_info, factory):
-
-        def has_render(factory):
-            render = getattr(factory, 'render', None)
-            base_method = getattr(render, 'base_method', False)
-            return render and not base_method
-
-        def has_no_render(factory):
-            render = getattr(factory, 'render', None)
-            base_method = getattr(render, 'base_method', False)
-            return render is None or base_method
-        templates.checkTemplates(module_info, factory, 'view',
-                                 has_render, has_no_render)

Modified: megrok.layout/trunk/src/megrok/layout/tests/errors/norenderortemplatelayout.py
===================================================================
--- megrok.layout/trunk/src/megrok/layout/tests/errors/norenderortemplatelayout.py	2010-12-07 15:42:47 UTC (rev 118746)
+++ megrok.layout/trunk/src/megrok/layout/tests/errors/norenderortemplatelayout.py	2010-12-07 15:50:20 UTC (rev 118747)
@@ -2,7 +2,7 @@
   >>> grok.testing.grok(__name__)
   Traceback (most recent call last):
   ...
-  ConfigurationExecutionError: <class 'martian.error.GrokError'>: View <class 'megrok.layout.tests.errors.norenderortemplatelayout.MyLayout'> has no associated template or 'render' method.
+  ConfigurationExecutionError: <class 'martian.error.GrokError'>: Layout <class 'megrok.layout.tests.errors.norenderortemplatelayout.MyLayout'> has no associated template or 'render' method.
   in:
   <BLANKLINE>
 """

Modified: megrok.layout/trunk/src/megrok/layout/tests/errors/renderandtemplate.py
===================================================================
--- megrok.layout/trunk/src/megrok/layout/tests/errors/renderandtemplate.py	2010-12-07 15:42:47 UTC (rev 118746)
+++ megrok.layout/trunk/src/megrok/layout/tests/errors/renderandtemplate.py	2010-12-07 15:50:20 UTC (rev 118747)
@@ -2,7 +2,7 @@
   >>> grok.testing.grok(__name__)
   Traceback (most recent call last):
   ...
-  ConfigurationExecutionError: <class 'martian.error.GrokError'>: Multiple possible ways to render view <class 'megrok.layout.tests.errors.renderandtemplate.MyLayout'>. It has both a 'render' method as well as an associated template.
+  ConfigurationExecutionError: <class 'martian.error.GrokError'>: Multiple possible ways to render layout <class 'megrok.layout.tests.errors.renderandtemplate.MyLayout'>. It has both a 'render' method as well as an associated template.
   in:
   <BLANKLINE>
 """



More information about the checkins mailing list