[Checkins] SVN: megrok.kss/trunk/ merge
janjaapdriessen-grokcore.component-for-megrok.kss
Godefroid Chapelle
gotcha at bubblenet.be
Thu Jul 3 17:09:00 EDT 2008
Log message for revision 87968:
merge janjaapdriessen-grokcore.component-for-megrok.kss
Changed:
A megrok.kss/trunk/CHANGES.txt
U megrok.kss/trunk/buildout.cfg
U megrok.kss/trunk/src/megrok/kss/__init__.py
U megrok.kss/trunk/src/megrok/kss/meta.py
U megrok.kss/trunk/src/megrok/kss/tests/kss.py
-=-
Copied: megrok.kss/trunk/CHANGES.txt (from rev 87967, megrok.kss/branches/janjaapdriessen-grokcore.component-for-megrok.kss/CHANGES.txt)
===================================================================
--- megrok.kss/trunk/CHANGES.txt (rev 0)
+++ megrok.kss/trunk/CHANGES.txt 2008-07-03 21:08:59 UTC (rev 87968)
@@ -0,0 +1,15 @@
+megrok.kss changes
+******************
+
+0.2 (unreleased)
+=================
+
+Restructuring
+-------------
+
+* Change the KSSGrokker to use the new grokcore.component directives.
+
+0.1 (2008-04-30)
+================
+
+Initial release
Modified: megrok.kss/trunk/buildout.cfg
===================================================================
--- megrok.kss/trunk/buildout.cfg 2008-07-03 21:04:33 UTC (rev 87967)
+++ megrok.kss/trunk/buildout.cfg 2008-07-03 21:08:59 UTC (rev 87968)
@@ -1,8 +1,8 @@
[buildout]
-develop = .
-parts = interpreter test
+develop = .
+parts = test interpreter
find-links = http://download.zope.org/distribution/
-extends= http://grok.zope.org/releaseinfo/grok-0.12.cfg
+extends = http://grok.zope.org/releaseinfo/grok-0.13.cfg
versions = versions
[interpreter]
Modified: megrok.kss/trunk/src/megrok/kss/__init__.py
===================================================================
--- megrok.kss/trunk/src/megrok/kss/__init__.py 2008-07-03 21:04:33 UTC (rev 87967)
+++ megrok.kss/trunk/src/megrok/kss/__init__.py 2008-07-03 21:08:59 UTC (rev 87968)
@@ -1 +1 @@
-from components import KSS
\ No newline at end of file
+from megrok.kss.components import KSS
\ No newline at end of file
Modified: megrok.kss/trunk/src/megrok/kss/meta.py
===================================================================
--- megrok.kss/trunk/src/megrok/kss/meta.py 2008-07-03 21:04:33 UTC (rev 87967)
+++ megrok.kss/trunk/src/megrok/kss/meta.py 2008-07-03 21:08:59 UTC (rev 87968)
@@ -1,3 +1,8 @@
+import martian
+
+import grok
+from grok.util import make_checker
+
from zope import component
from zope import interface
from zope.publisher.browser import BrowserPage
@@ -3,53 +8,30 @@
from zope.publisher.interfaces.browser import IDefaultBrowserLayer
-import martian
-from martian import util
+from megrok.kss.components import KSS
-from grok.util import get_default_permission, make_checker
-from grok.util import determine_class_directive
-from components import KSS
+class KSSGrokker(martian.MethodGrokker):
+ martian.component(KSS)
+ martian.directive(grok.directive.view)
+ martian.directive(grok.require, name='permission')
+ def execute(self, factory, method, config, view, permission, **kw):
-class KSSGrokker(martian.ClassGrokker):
- component_class = KSS
+ # Create a new class with a __view_name__ attribute so the
+ # KSSServerAction class knows what method to call.
+ name = method.__name__
+ method_view = type(
+ factory.__name__, (factory, BrowserPage),
+ {'__view_name__': name})
- def grok(self, name, factory, module_info, config, **kw):
- view_context = determine_class_directive('grok.view', factory,
- module_info)
- methods = util.methods_from_class(factory)
- default_permission = get_default_permission(factory)
+ adapts = (view, IDefaultBrowserLayer)
+ config.action(
+ discriminator=('adapter', adapts, interface.Interface, name),
+ callable=component.provideAdapter,
+ args=(method_view, adapts, interface.Interface, name))
+ config.action(
+ discriminator=('protectName', method_view, '__call__'),
+ callable=make_checker,
+ args=(factory, method_view, permission))
- for method in methods:
- name = method.__name__
- if name.startswith('__'):
- continue
-
- # 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)
- config.action(discriminator=('adapter', adapts,
- interface.Interface, name),
- callable=component.provideAdapter,
- args=(method_view, adapts, interface.Interface, name))
-
- # Protect method_view with either the permission that was
- # set on the method, the default permission from the class
- # level or zope.Public.
- permission = getattr(method, '__grok_require__',
- default_permission)
-
- config.action(discriminator=('protectName', method_view,
- '__call__'),
- callable=make_checker,
- args=(factory, method_view, permission))
-
return True
Modified: megrok.kss/trunk/src/megrok/kss/tests/kss.py
===================================================================
--- megrok.kss/trunk/src/megrok/kss/tests/kss.py 2008-07-03 21:04:33 UTC (rev 87967)
+++ megrok.kss/trunk/src/megrok/kss/tests/kss.py 2008-07-03 21:08:59 UTC (rev 87968)
@@ -6,7 +6,7 @@
We create a view on the model and call the KSS action on the view. The
KSS action calls `self.view.render()`.
- >>> mymodel = TestModel('model1')
+ >>> mymodel = TestModel('model1')
>>> view = getMultiAdapter((mymodel, request), name="testview")
>>> kss = getMultiAdapter((view, request), name="getId")
>>> print kss()
@@ -43,6 +43,7 @@
class TestKSS(KSS):
grok.view(TestView)
+ grok.require(grok.Public)
def getId(self):
"""Docstring for getId"""
More information about the Checkins
mailing list