diff --git a/product/ERP5SyncML/Conduit/ERP5Conduit.py b/product/ERP5SyncML/Conduit/ERP5Conduit.py index 8e004f000ca1203d33fbdb0af80bdc57dadbf6a0..6363b7fdec71a1abb95a2475646370d181091153 100644 --- a/product/ERP5SyncML/Conduit/ERP5Conduit.py +++ b/product/ERP5SyncML/Conduit/ERP5Conduit.py @@ -792,7 +792,7 @@ class ERP5Conduit(XMLSyncUtilsMixin): security.declareProtected(Permissions.AccessContentsInformation,'getElementFromXupdate') def getElementFromXupdate(self, xml): """ - from a xupdate:element returns the element as xml + return a fragment node with applied xupdate """ if xml.xpath('name()') in self.XUPDATE_ELEMENT: new_node = Element(xml.attrib.get('name'), nsmap=xml.nsmap) diff --git a/product/ERP5SyncML/Conduit/ERP5DocumentConduit.py b/product/ERP5SyncML/Conduit/ERP5DocumentConduit.py index 6850ac82e84dd193993dff4253607b5f1ca2f341..05f1282274336b607586b421e3b2ec379fda3530 100644 --- a/product/ERP5SyncML/Conduit/ERP5DocumentConduit.py +++ b/product/ERP5SyncML/Conduit/ERP5DocumentConduit.py @@ -127,12 +127,12 @@ class ERP5DocumentConduit(ERP5Conduit): for element in self.getXupdateElementList(subnode): name_element = element.attrib.get('name', None) if name_element: + attrib_dict = {} for sub_element in element: if sub_element.xpath('name()') in 'xupdate:attribute': - name_attribute = sub_element.attrib.get('name') - value_attribute = sub_element.text + attrib_dict[sub_element.attrib.get('name')] = sub_element.text block = etree.SubElement(xml, name_element) - block.set(name_attribute, value_attribute) + block.attrib.update(attrib_dict) #change structure in xupdate because is bad formed value = etree.tostring(element).split('</')[1].split('>')[1] block.text = value