diff --git a/product/ERP5SyncML/XMLSyncUtils.py b/product/ERP5SyncML/XMLSyncUtils.py index 61c34dfaa51384e48309d986a788055c5e6eb38c..1256c918c42d705606a24d3d923f39409d604113 100644 --- a/product/ERP5SyncML/XMLSyncUtils.py +++ b/product/ERP5SyncML/XMLSyncUtils.py @@ -239,7 +239,7 @@ class XMLSyncUtilsMixin(SyncCode): xml.append(E.MsgRef('%s' % message_id)) if cmd_ref: xml.append(E.CmdRef('%s' % cmd_ref)) - xml.append(E.Meta(E.Type('application/vnd.syncml-devinf+xml')), + xml.extend((E.Meta(E.Type('application/vnd.syncml-devinf+xml')), E.Item(E.Source(E.LocURI('./devinf11')), E.Data(E.DevInf( E.VerDTD('1.1'), @@ -250,29 +250,27 @@ class XMLSyncUtilsMixin(SyncCode): E.DevID(subscription.getSubscriptionUrl()), E.DevTyp('workstation'), E.UTC(), - E.DataStore( - E.SourceRef(subscription.getSourceURI()), - Element('E.Rx-Pref').append( - (E.CTType(conduit.getPreferedCapabilitieCTType()), - E.VerCT(conduit.getPreferedCapabilitieVerCT())) - ) - ) + E.DataStore(E.SourceRef(subscription.getSourceURI())) ) ) - )) - data_store = xml.find('DataStore') + ))) + data_store = xml.find('Item/Data/DevInf/DataStore') tx_element_list = [] rx_element_list = [] for type in conduit.getCapabilitiesCTTypeList(): if type != self.MEDIA_TYPE['TEXT_XML']: - for tx_version in conduit.getCapabilitiesVerCTList(type): - rx_element_list.append(E.Rx(E.CTType(type), E.VerCT(rx_version))) - tx_element_list.append(E.Tx(E.CTType(type), E.VerCT(rx_version))) + for x_version in conduit.getCapabilitiesVerCTList(type): + rx_element_list.append(E.Rx(E.CTType(type), E.VerCT(x_version))) + tx_element_list.append(E.Tx(E.CTType(type), E.VerCT(x_version))) + rx_pref = Element('Rx-Pref') + rx_pref.extend((E.CTType(conduit.getPreferedCapabilitieCTType()), + E.VerCT(conduit.getPreferedCapabilitieVerCT()))) + data_store.append(rx_pref) data_store.extend(rx_element_list) - data_store.append(Element('Tx-Pref').extend( - (E.CTType(conduit.getPreferedCapabilitieCTType()), - E.VerCT(conduit.getPreferedCapabilitieVerCT())) - )) + tx_pref = Element('Tx-Pref') + tx_pref.extend((E.CTType(conduit.getPreferedCapabilitieCTType()), + E.VerCT(conduit.getPreferedCapabilitieVerCT()))) + data_store.append(tx_pref) data_store.extend(tx_element_list) data_store.append(E.SyncCap( E.SyncType('2'),