[Checkins] SVN: megrok.kss/branches/janjaapdriessen-grokcore.component-for-megrok.kss/src/megrok/kss/meta.py Port over to declarative directives in class grokker.

Philipp von Weitershausen philikon at philikon.de
Wed May 14 12:39:11 EDT 2008


Log message for revision 86749:
  Port over to declarative directives in class grokker.
  

Changed:
  U   megrok.kss/branches/janjaapdriessen-grokcore.component-for-megrok.kss/src/megrok/kss/meta.py

-=-
Modified: megrok.kss/branches/janjaapdriessen-grokcore.component-for-megrok.kss/src/megrok/kss/meta.py
===================================================================
--- megrok.kss/branches/janjaapdriessen-grokcore.component-for-megrok.kss/src/megrok/kss/meta.py	2008-05-14 16:29:51 UTC (rev 86748)
+++ megrok.kss/branches/janjaapdriessen-grokcore.component-for-megrok.kss/src/megrok/kss/meta.py	2008-05-14 16:39:11 UTC (rev 86749)
@@ -12,11 +12,13 @@
 
 class KSSGrokker(martian.ClassGrokker):
     component_class = KSS
+    directives = [
+        grok.view.bind(),
+        grok.require.bind(name='class_permission'),
+        ]
 
-    def grok(self, name, factory, module_info, config, **kw):
-        view_context = grok.view.get(factory, module_info.getModule())
+    def execute(self, factory, config, view, class_permission, **kw):
         methods = martian.util.methods_from_class(factory)
-        default_permission = grok.require.get(factory)
 
         for method in methods:
             name = method.__name__
@@ -26,16 +28,12 @@
             # Create a new class with a __view_name__ attribute so the
             # KSSServerAction class knows what method to call.
 
-            #We should allow name directives on methods
-            #view_name = util.class_annotation(factory, 'grok.name',
-            #                                  factory_name)
-
             method_view = type(
                 factory.__name__, (factory, BrowserPage),
                 {'__view_name__': name}
                 )
 
-            adapts = (view_context, IDefaultBrowserLayer)
+            adapts = (view, IDefaultBrowserLayer)
             config.action(
                 discriminator=('adapter', adapts, interface.Interface, name),
                 callable=component.provideAdapter,
@@ -45,9 +43,9 @@
             # Protect method_view with either the permission that was
             # set on the method, the default permission from the class
             # level or zope.Public.
-            permission = grok.require.get(method)
+            permission = grok.require.bind().get(method)
             if permission is None:
-                permission = default_permission
+                permission = class_permission
 
             config.action(
                 discriminator=('protectName', method_view, '__call__'),



More information about the Checkins mailing list