[Erp5-report] r24164 - /erp5/trunk/products/ERP5Type/Base.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Mon Oct 13 21:36:28 CEST 2008
Author: yo
Date: Mon Oct 13 21:36:28 2008
New Revision: 24164
URL: http://svn.erp5.org?rev=24164&view=rev
Log:
Due to a bootstrap problem that using objects as keys of a set calls getUID implicitly, while portal_catalog is not available yet, it is necessary to avoid setting objects as keys.
Modified:
erp5/trunk/products/ERP5Type/Base.py
Modified: erp5/trunk/products/ERP5Type/Base.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Base.py?rev=24164&r1=24163&r2=24164&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Base.py (original)
+++ erp5/trunk/products/ERP5Type/Base.py Mon Oct 13 21:36:28 2008
@@ -1559,7 +1559,7 @@
hasProperty is False will be updated.
"""
modified_property_dict = self._v_modified_property_dict = {}
- modified_object_set = set()
+ modified_object_dict = {}
key_list = kw.keys()
unordered_key_list = [k for k in key_list if k not in edit_order]
@@ -1612,7 +1612,11 @@
# that self has been modified.
if modified_object_list is None:
modified_object_list = (self,)
- modified_object_set.update(modified_object_list)
+ for o in modified_object_list:
+ # XXX using id is not quite nice, but getUID causes a
+ # problem at the bootstrap of an ERP5 site. Therefore,
+ # objects themselves cannot be used as keys.
+ modified_object_dict[id(o)] = o
else:
self.setId(kw['id'], reindex=reindex_object)
else:
@@ -1625,7 +1629,7 @@
setChangedPropertyList(ordered_key_list)
if reindex_object:
- for o in modified_object_set:
+ for o in modified_object_dict.itervalues():
o.reindexObject(activate_kw=activate_kw)
security.declareProtected( Permissions.ModifyPortalContent, 'setId' )
More information about the Erp5-report
mailing list