[Checkins] SVN: grokcore.viewlet/trunk/ Move the order directive to grokcore.component.
Sylvain Viollon
sylvain at infrae.com
Mon Nov 1 11:15:18 EDT 2010
Log message for revision 118051:
Move the order directive to grokcore.component.
Changed:
U grokcore.viewlet/trunk/CHANGES.txt
U grokcore.viewlet/trunk/src/grokcore/viewlet/__init__.py
U grokcore.viewlet/trunk/src/grokcore/viewlet/directive.py
U grokcore.viewlet/trunk/src/grokcore/viewlet/interfaces.py
U grokcore.viewlet/trunk/src/grokcore/viewlet/tests/test_grok.py
U grokcore.viewlet/trunk/src/grokcore/viewlet/util.py
-=-
Modified: grokcore.viewlet/trunk/CHANGES.txt
===================================================================
--- grokcore.viewlet/trunk/CHANGES.txt 2010-11-01 15:09:22 UTC (rev 118050)
+++ grokcore.viewlet/trunk/CHANGES.txt 2010-11-01 15:15:18 UTC (rev 118051)
@@ -4,7 +4,7 @@
1.6 (unreleased)
----------------
-- Nothing changed yet.
+* Move the order directive to grokcore.component.
1.5 (2010-10-18)
Modified: grokcore.viewlet/trunk/src/grokcore/viewlet/__init__.py
===================================================================
--- grokcore.viewlet/trunk/src/grokcore/viewlet/__init__.py 2010-11-01 15:09:22 UTC (rev 118050)
+++ grokcore.viewlet/trunk/src/grokcore/viewlet/__init__.py 2010-11-01 15:15:18 UTC (rev 118051)
@@ -18,7 +18,7 @@
from grokcore.view import *
from grokcore.viewlet.components import Viewlet, ViewletManager
-from grokcore.viewlet.directive import view, viewletmanager, order
+from grokcore.viewlet.directive import view, viewletmanager
# Import this module so that it's available as soon as you import the
# 'grokcore.view' package. Useful for tests and interpreter examples.
Modified: grokcore.viewlet/trunk/src/grokcore/viewlet/directive.py
===================================================================
--- grokcore.viewlet/trunk/src/grokcore/viewlet/directive.py 2010-11-01 15:09:22 UTC (rev 118050)
+++ grokcore.viewlet/trunk/src/grokcore/viewlet/directive.py 2010-11-01 15:15:18 UTC (rev 118051)
@@ -33,14 +33,3 @@
class view(OneInterfaceOrClassOnClassOrModule):
default = IBrowserView
-
-class order(martian.Directive):
- scope = martian.CLASS
- store = martian.ONCE
- default = 0, 0
-
- _order = 0
-
- def factory(self, value=0):
- order._order += 1
- return value, order._order
Modified: grokcore.viewlet/trunk/src/grokcore/viewlet/interfaces.py
===================================================================
--- grokcore.viewlet/trunk/src/grokcore/viewlet/interfaces.py 2010-11-01 15:09:22 UTC (rev 118050)
+++ grokcore.viewlet/trunk/src/grokcore/viewlet/interfaces.py 2010-11-01 15:15:18 UTC (rev 118051)
@@ -41,26 +41,7 @@
"""Define on which viewlet manager a viewlet is registered.
"""
- def order(value=None):
- """Control the ordering of components.
- If the value is specified, the order will be determined by sorting on
- it.
- If no value is specified, the order will be determined by definition
- order within the module.
- If the directive is absent, the order will be determined by class name.
- (unfortunately our preferred default behavior on absence which would
- be like grok.order() without argument is hard to implement in Python)
-
- Inter-module order is by dotted name of the module the
- components are in; unless an explicit argument is specified to
- ``grok.order()``, components are grouped by module.
-
- The function grok.util.sort_components can be used to sort
- components according to these rules.
- """
-
-
class IGrokcoreViewletAPI(grokcore.component.interfaces.IGrokcoreComponentAPI,
grokcore.security.interfaces.IGrokcoreSecurityAPI,
grokcore.view.interfaces.IGrokcoreViewAPI,
Modified: grokcore.viewlet/trunk/src/grokcore/viewlet/tests/test_grok.py
===================================================================
--- grokcore.viewlet/trunk/src/grokcore/viewlet/tests/test_grok.py 2010-11-01 15:09:22 UTC (rev 118050)
+++ grokcore.viewlet/trunk/src/grokcore/viewlet/tests/test_grok.py 2010-11-01 15:15:18 UTC (rev 118051)
@@ -42,7 +42,7 @@
def test_suite():
suite = unittest.TestSuite()
- for name in ['viewlet', 'order']:
+ for name in ['viewlet']:
suite.addTest(suiteFromPackage(name))
return suite
Modified: grokcore.viewlet/trunk/src/grokcore/viewlet/util.py
===================================================================
--- grokcore.viewlet/trunk/src/grokcore/viewlet/util.py 2010-11-01 15:09:22 UTC (rev 118050)
+++ grokcore.viewlet/trunk/src/grokcore/viewlet/util.py 2010-11-01 15:15:18 UTC (rev 118051)
@@ -13,10 +13,11 @@
##############################################################################
"""Grok utility functions.
"""
-from grokcore.viewlet import directive
from zope.security.checker import NamesChecker, defineChecker
from grokcore.security.util import check_permission
+# BBB
+from grokcore.component.util import sort_components
def make_checker(factory, view_factory, permission, method_names=None):
@@ -35,15 +36,3 @@
checker = NamesChecker(method_names, permission)
defineChecker(view_factory, checker)
-
-def _sort_key(component):
- # If components have a grok.order directive, sort by that.
- explicit_order, implicit_order = directive.order.bind().get(component)
- return (explicit_order,
- component.__module__,
- implicit_order,
- component.__class__.__name__)
-
-
-def sort_components(components):
- return sorted(components, key=_sort_key)
More information about the checkins
mailing list