Author: jmorliaguet
Date: Sun Jun 18 18:17:20 2006
New Revision: 3452

Modified:
   cpsskins/branches/paris-sprint-2006/storage/storage.py

Log:

- fix: we must still locate objects added in container other traversal will
  fail

- made storages persistent too.



Modified: cpsskins/branches/paris-sprint-2006/storage/storage.py
==============================================================================
--- cpsskins/branches/paris-sprint-2006/storage/storage.py      (original)
+++ cpsskins/branches/paris-sprint-2006/storage/storage.py      Sun Jun 18 
18:17:20 2006
@@ -18,6 +18,7 @@
 __docformat__ = "reStructuredText"
 
 import re
+from persistent import Persistent
 from BTrees.OOBTree import OOBTree
 from zope.app.container.sample import SampleContainer
 from zope.app.container.contained import Contained
@@ -26,6 +27,7 @@
 from zope.event import notify
 from zope.interface import implements
 from zope.lifecycleevent import ObjectCopiedEvent
+from zope.location.location import locate
 from zope.traversing.api import getName
 
 from cpsskins.elements.interfaces import IElement
@@ -33,7 +35,7 @@
 from cpsskins.storage.interfaces import IStorage
 from cpsskins.utils import cloneObject
 
-class Storage(SampleContainer, Contained):
+class Storage(SampleContainer, Contained, Persistent):
     """A base storage class.
 
     >>> from zope.interface.verify import verifyClass
@@ -55,6 +57,7 @@
         chooser = INameChooser(self)
         name = chooser.chooseName(name, object)
         self[name] = object
+        locate(object=object, parent=self, name=name)
         notify(ObjectAddedEvent(object))
         return self[name]
 
@@ -86,6 +89,7 @@
             name = old_name
         name = INameChooser(self).chooseName(name, copy)
         self[name] = copy
+        locate(object=copy, parent=self, name=name)
         notify(ObjectAddedEvent(copy))
 
         return self[name]
-- 
http://lists.nuxeo.com/mailman/listinfo/z3lab-checkins

Reply via email to