diff --git a/product/ERP5Type/XMLMatrix.py b/product/ERP5Type/XMLMatrix.py index a338b04e22285a9106ee550ef2e21fad286f934c..dd1626c213fd4b07a2b285a73e7396e667bdec80 100644 --- a/product/ERP5Type/XMLMatrix.py +++ b/product/ERP5Type/XMLMatrix.py @@ -212,22 +212,20 @@ class XMLMatrix(Folder): # List all valid cell ids for current base_id. object_id_list = [] - base_id_len = len(base_id) - for object_id in self.objectIds(): - object_id_list = object_id.split('_') - if len(object_id_list) > 1 and object_id_list.pop(0) == base_id: - try: - # Check that all '_'-separated fields are of int type (once - # base_id is poped). - [int(x) for x in object_id_list] - self._getOb(object_id) # If the object was created - # during this transaction, - # then we do not need to - # work on it - except (ValueError, KeyError): - pass - else: - object_id_list.append(object_id) + for obj in self.objectValues(): + object_id = obj.getId() + if object_id.find(base_id) == 0: + # Check that all '_'-separated fields are of int type. + if (object_id) > len(base_id): + try: + int(object_id[len(base_id)+1:].split('_')[0]) + test = self._getOb(object_id) # If the object was created + # during this transaction, + # then we do not need to + # work on it + object_id_list.append(object_id) + except (ValueError, KeyError): + pass # Prepend 'temp_' to all cells, to avoid id conflicts while renaming. for object_id in object_id_list: