[Erp5-report] r35522 nicolas - /erp5/trunk/utils/erp5diff/ERP5Diff.py

nobody at svn.erp5.org nobody at svn.erp5.org
Fri May 21 14:30:30 CEST 2010


Author: nicolas
Date: Fri May 21 14:30:29 2010
New Revision: 35522

URL: http://svn.erp5.org?rev=35522&view=rev
Log:
Fix relative calculation of position for xupdate:insert-before nodes

Modified:
    erp5/trunk/utils/erp5diff/ERP5Diff.py

Modified: erp5/trunk/utils/erp5diff/ERP5Diff.py
URL: http://svn.erp5.org/erp5/trunk/utils/erp5diff/ERP5Diff.py?rev=35522&r1=35521&r2=35522&view=diff
==============================================================================
--- erp5/trunk/utils/erp5diff/ERP5Diff.py [utf8] (original)
+++ erp5/trunk/utils/erp5diff/ERP5Diff.py [utf8] Fri May 21 14:30:29 2010
@@ -235,7 +235,7 @@
         append_element = last_append_element
       elif relative_next is not None and relative_next not in element_list:
         append_element = etree.SubElement(root, '{%s}insert-before' % self._ns, nsmap=element.nsmap)
-        path_list = self._makeRelativePathList([relative_next])
+        path_list = self._makeRelativePathList([relative_next], before=1)
         next_sibling_path = self._concatPath(path, path_list[0])
         append_element.attrib['select'] = next_sibling_path
       elif relative_previous is not None and relative_previous not in element_list:
@@ -400,7 +400,7 @@
         return True
     return False
 
-  def _makeRelativePathList(self, element_list):
+  def _makeRelativePathList(self, element_list, before=0):
     """
       Make a list of relative paths from a list of elements.
     """
@@ -429,7 +429,7 @@
         len_all_similar_sibling = len(element.findall('../%s' % element.tag))
         if len_all_similar_sibling > 1:
           position = len_all_similar_sibling - len(list(element.itersiblings(tag=element.tag)))
-          path_list.append('%s[%d]' % (element.xpath('name()'), position))
+          path_list.append('%s[%d]' % (element.xpath('name()'), position-before))
         else:
           path_list.append(element.xpath('name()'))
 




More information about the Erp5-report mailing list