diff --git a/product/ERP5Type/XMLMatrix.py b/product/ERP5Type/XMLMatrix.py index dd1626c213fd4b07a2b285a73e7396e667bdec80..a338b04e22285a9106ee550ef2e21fad286f934c 100644 --- a/product/ERP5Type/XMLMatrix.py +++ b/product/ERP5Type/XMLMatrix.py @@ -212,20 +212,22 @@ class XMLMatrix(Folder): # List all valid cell ids for current base_id. object_id_list = [] - 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 + 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) # Prepend 'temp_' to all cells, to avoid id conflicts while renaming. for object_id in object_id_list: