From e7681e38959cb042d71050e759646dfb22d742a5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9rome=20Perrin?= <jerome@nexedi.com>
Date: Fri, 10 Oct 2008 16:15:35 +0000
Subject: [PATCH] override manage_renameObject to keep the ordering of a field
 in a form after renaming a field

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@24150 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 product/ERP5Form/Form.py | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/product/ERP5Form/Form.py b/product/ERP5Form/Form.py
index 4aae89057e4..c9cfe799a2b 100644
--- a/product/ERP5Form/Form.py
+++ b/product/ERP5Form/Form.py
@@ -26,6 +26,8 @@
 #
 ##############################################################################
 
+from copy import deepcopy
+
 from Products.Formulator.Form import Form, BasicForm, ZMIForm
 from Products.Formulator.Form import manage_addForm, manage_add, initializeForm
 from Products.Formulator.Errors import FormValidationError, ValidationError
@@ -574,6 +576,19 @@ class ERP5Form(ZMIForm, ZopePageTemplate):
         pt = getattr(self,self.pt)
         return pt._exec(self, bound_names, args, kw)
 
+    def manage_renameObject(self, id, new_id, REQUEST=None):
+      # overriden to keep the order of a field after rename
+      groups = deepcopy(self.groups)
+      ret = ZMIForm.manage_renameObject(self, id, new_id, REQUEST=REQUEST)
+      for group_id, field_id_list in groups.items():
+        if id in field_id_list:
+          index = field_id_list.index(id)
+          field_id_list.pop(index)
+          field_id_list.insert(index, new_id)
+          groups[group_id] = field_id_list
+      self.groups = groups
+      return ret
+
     # Utilities
     def ErrorFields(self, validation_errors):
         """
-- 
2.30.9