From bee7851d0c3c309f332d2414938fa592fdd5d47d Mon Sep 17 00:00:00 2001
From: Nicolas Delaby <nicolas@nexedi.com>
Date: Fri, 30 Oct 2009 16:38:56 +0000
Subject: [PATCH] Add backward compatibility with old ERP5Diff

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@30172 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 product/ERP5SyncML/Conduit/ERP5DocumentConduit.py | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/product/ERP5SyncML/Conduit/ERP5DocumentConduit.py b/product/ERP5SyncML/Conduit/ERP5DocumentConduit.py
index 11b00e5d9a..494975c5df 100644
--- a/product/ERP5SyncML/Conduit/ERP5DocumentConduit.py
+++ b/product/ERP5SyncML/Conduit/ERP5DocumentConduit.py
@@ -31,6 +31,8 @@ from Products.ERP5SyncML.Conduit.ERP5Conduit import ERP5Conduit
 from AccessControl import ClassSecurityInfo
 from Products.ERP5Type import Permissions
 from Products.ERP5SyncML.SyncCode import SyncCode
+from ERP5Diff import ERP5Diff
+import re
 from lxml import etree
 parser = etree.XMLParser(remove_blank_text=True)
 
@@ -97,6 +99,9 @@ class ERP5DocumentConduit(ERP5Conduit):
         else:
           xml = xml_previous.xpath(path_prop_id)[0]
         request = prop_list[-1]
+        if getattr(ERP5Diff, '__version__', 0.0) <= 0.2:
+          #Old ERP5Diff, xpath position start from 0, so add +1 to be compliant
+          request = re.sub('(\d+)', lambda match:str(int(match.group(0))+1), request)
         if subnode.xpath('name()') in self.XUPDATE_DEL:
           node_to_remove_list = xml.xpath(request)
           if node_to_remove_list:
-- 
2.30.9