--- lib/python/OFS/CopySupport.py Mon Apr 16 18:26:20 2001 +++ lib/python/OFS/CopySupport.py.new Sun Jun 24 20:58:48 2001 @@ -281,9 +281,20 @@ """Rename several sub-objects""" if len(ids) != len(new_ids): raise 'Bad Request','Please rename each listed object.' + conflicts = [] for i in range(len(ids)): if ids[i] != new_ids[i]: + if new_ids[i] not in ids : # may a conflict occur ? self.manage_renameObject(ids[i], new_ids[i], REQUEST) + else : + tempo = ".temporary_%i_" % i + self.manage_renameObject(ids[i], tempo) + conflicts.append((tempo, new_ids[i])) + + # now we rename conflictuous objects + for (old, new) in conflicts : + self.manage_renameObject(old, new) + if REQUEST is not None: return self.manage_main(self, REQUEST, update_menu=1) return None