[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