[Checkins] SVN: grok/branches/philikon-refactor-templatereg/src/grok/ Make the TemplateRegistry unaware of views, viewlets, ... It shouldn't have to

Philipp von Weitershausen philikon at philikon.de
Fri Mar 14 06:57:23 EDT 2008


Log message for revision 84651:
  Make the TemplateRegistry unaware of views, viewlets, ... It shouldn't have to
  care what the templates are used for. The current setup makes it hard to extend
  the system with other components that also need templates.
  
  Grokkers are now responsible for "checking" the templates. This makes it easily
  extendable.
  

Changed:
  U   grok/branches/philikon-refactor-templatereg/src/grok/meta.py
  U   grok/branches/philikon-refactor-templatereg/src/grok/templatereg.py

-=-
Modified: grok/branches/philikon-refactor-templatereg/src/grok/meta.py
===================================================================
--- grok/branches/philikon-refactor-templatereg/src/grok/meta.py	2008-03-14 10:55:32 UTC (rev 84650)
+++ grok/branches/philikon-refactor-templatereg/src/grok/meta.py	2008-03-14 10:57:22 UTC (rev 84651)
@@ -263,8 +263,8 @@
         if templates is not None:
             config.action(
                 discriminator=None,
-                callable=templates.checkTemplatesView,
-                args=(module_info, factory)
+                callable=self.checkTemplates,
+                args=(templates, module_info, factory)
             )
 
         # safety belt: make sure that the programmer didn't use
@@ -302,6 +302,16 @@
 
         return True
 
+    def checkTemplates(self, templates, module_info, factory):
+        def has_render(factory):
+            return (getattr(factory, 'render', None) and
+                    not util.check_subclass(factory, grok.components.GrokForm))
+        def has_no_render(factory):
+            return not getattr(factory, 'render', None)
+        templates.checkTemplates(module_info, factory, 'view',
+                                 has_render, has_no_render)
+
+
 def view__getitem__(self, key):
     return self.template.macros[key]
 
@@ -930,8 +940,9 @@
         if templates is not None:
             config.action(
                 discriminator=None,
-                callable=templates.checkTemplatesViewlet,
-                args=(module_info, factory))
+                callable=self.checkTemplates,
+                args=(templates, module_info, factory)
+                )
     
         view = determine_class_directive('grok.view', factory,
                                          module_info, default=IBrowserView)
@@ -956,3 +967,11 @@
             )
         
         return True
+
+    def checkTemplates(self, templates, module_info, factory):
+        def has_render(factory):
+            return factory.render != grok.components.Viewlet.render
+        def has_no_render(factory):
+            return not has_render(factory)
+        templates.checkTemplates(module_info, factory, 'viewlet',
+                                 has_render, has_no_render)

Modified: grok/branches/philikon-refactor-templatereg/src/grok/templatereg.py
===================================================================
--- grok/branches/philikon-refactor-templatereg/src/grok/templatereg.py	2008-03-14 10:55:32 UTC (rev 84650)
+++ grok/branches/philikon-refactor-templatereg/src/grok/templatereg.py	2008-03-14 10:57:22 UTC (rev 84651)
@@ -81,8 +81,8 @@
                 module_info.dotted_name, ', '.join(unassociated)))
             warnings.warn(msg, UserWarning, 2)
 
-    def _checkTemplates(self, module_info, factory, component_name,
-                        has_render, has_no_render):
+    def checkTemplates(self, module_info, factory, component_name,
+                       has_render, has_no_render):
         factory_name = factory.__name__.lower()
         template_name = util.class_annotation(factory, 'grok.template',
                                               factory_name)
@@ -116,23 +116,6 @@
                                 "'render' method." %
                                 (component_name.title(), factory), factory)
 
-    def checkTemplatesView(self, module_info, factory):
-        def has_render(factory):
-            return (getattr(factory, 'render', None) and
-                    not util.check_subclass(factory, grok.components.GrokForm))
-        def has_no_render(factory):
-            return not getattr(factory, 'render', None)
-        self._checkTemplates(module_info, factory, 'view',
-                             has_render, has_no_render)
-
-    def checkTemplatesViewlet(self, module_info, factory):
-        def has_render(factory):
-            return factory.render != grok.components.Viewlet.render
-        def has_no_render(factory):
-            return not has_render(factory)
-        self._checkTemplates(module_info, factory, 'viewlet',
-                             has_render, has_no_render)
-
 class PageTemplateFileFactory(grok.GlobalUtility):
 
     grok.implements(grok.interfaces.ITemplateFileFactory)



More information about the Checkins mailing list