[Checkins] SVN: zope.generic/trunk/src/zope/generic/type/ add ordered container as base type

Dominik Huber dominik.huber at perse.ch
Thu Apr 20 10:24:05 EDT 2006


Log message for revision 67175:
  add ordered container as base type

Changed:
  U   zope.generic/trunk/src/zope/generic/type/api.py
  U   zope.generic/trunk/src/zope/generic/type/base.py
  U   zope.generic/trunk/src/zope/generic/type/configure.zcml

-=-
Modified: zope.generic/trunk/src/zope/generic/type/api.py
===================================================================
--- zope.generic/trunk/src/zope/generic/type/api.py	2006-04-20 14:11:55 UTC (rev 67174)
+++ zope.generic/trunk/src/zope/generic/type/api.py	2006-04-20 14:24:03 UTC (rev 67175)
@@ -22,6 +22,7 @@
 from zope.generic.type.base import Contained
 from zope.generic.type.base import Container
 from zope.generic.type.base import Folder
+from zope.generic.type.base import OrderedContainer
 
 from zope.generic.type.helper import acquireObjectConfiguration
 from zope.generic.type.helper import createObject

Modified: zope.generic/trunk/src/zope/generic/type/base.py
===================================================================
--- zope.generic/trunk/src/zope/generic/type/base.py	2006-04-20 14:11:55 UTC (rev 67174)
+++ zope.generic/trunk/src/zope/generic/type/base.py	2006-04-20 14:24:03 UTC (rev 67175)
@@ -25,6 +25,7 @@
 from zope.app.annotation.interfaces import IAttributeAnnotatable
 from zope.app.container import contained
 from zope.app.container import btree
+from zope.app.container import ordered
 from zope.app import folder
 
 from zope.generic.configuration.api import IAttributeConfigurable
@@ -54,7 +55,9 @@
 
     __keyface__ = UpdateProvides(IDirectlyTyped['__keyface__'])
     
-    keyface = __keyface__
+    @property
+    def keyface(self):
+        return self.__keyface__
 
 
 
@@ -75,7 +78,9 @@
 
     __keyface__ = UpdateProvides(IDirectlyTyped['__keyface__'])
 
-    keyface = __keyface__
+    @property
+    def keyface(self):
+        return self.__keyface__
 
 
 class Container(btree.BTreeContainer):
@@ -95,9 +100,35 @@
 
     __keyface__ = UpdateProvides(IDirectlyTyped['__keyface__'])
 
-    keyface = __keyface__
+    @property
+    def keyface(self):
+        return self.__keyface__
 
 
+
+class OrderedContainer(ordered.OrderedContainer):
+    """Default implementation local, persistend and ordered-containerish objects."""
+
+    implements(IDirectlyTyped, IAttributeConfigurable, IAttributeAnnotatable)
+
+    def __init__(self, __keyface__, *pos, **kws):
+        super(OrderedContainer, self).__init__()
+        self.__dict__['__keyface__'] = __keyface__
+        updateDirectlyProvided(self, __keyface__)
+        initializer = IInitializer(self, None)
+        if initializer:
+            initializer(*pos, **kws)
+
+    provides('__keyface__')
+
+    __keyface__ = UpdateProvides(IDirectlyTyped['__keyface__'])
+
+    @property
+    def keyface(self):
+        return self.__keyface__
+
+
+
 class Folder(folder.Folder):
     """Default implementation local, persistend and containerish possible sites."""
 
@@ -115,4 +146,6 @@
 
     __keyface__ = UpdateProvides(IDirectlyTyped['__keyface__'])
 
-    keyface = __keyface__
+    @property
+    def keyface(self):
+        return self.__keyface__

Modified: zope.generic/trunk/src/zope/generic/type/configure.zcml
===================================================================
--- zope.generic/trunk/src/zope/generic/type/configure.zcml	2006-04-20 14:11:55 UTC (rev 67174)
+++ zope.generic/trunk/src/zope/generic/type/configure.zcml	2006-04-20 14:24:03 UTC (rev 67175)
@@ -41,6 +41,26 @@
         />
   </class>
 
+  <!-- persistent generic ordered container implementation -->
+  <class class=".base.OrderedContainer">
+    <require 
+        permission="zope.Public"
+        interface="zope.generic.type.ITyped"
+        />
+    <require 
+        permission="zope.View"
+        interface="zope.app.container.interfaces.IReadContainer"
+        />
+    <require
+        permission="zope.ManageContent"
+        interface="zope.app.container.interfaces.IWriteContainer"
+        />
+    <require
+        permission="zope.ManageContent"
+        attributes="updateOrder"
+        />
+  </class>	
+
   <!-- persistent generic folder implementation -->
   <class class=".base.Folder">
     <require 



More information about the Checkins mailing list