[Erp5-report] r30120 - /erp5/trunk/products/ERP5SyncML/XMLSyncUtils.py

nobody at svn.erp5.org nobody at svn.erp5.org
Thu Oct 29 16:00:22 CET 2009


Author: daniele
Date: Thu Oct 29 16:00:20 2009
New Revision: 30120

URL: http://svn.erp5.org?rev=30120&view=rev
Log:
Manage when the partial element is empty

Modified:
    erp5/trunk/products/ERP5SyncML/XMLSyncUtils.py

Modified: erp5/trunk/products/ERP5SyncML/XMLSyncUtils.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5SyncML/XMLSyncUtils.py?rev=30120&r1=30119&r2=30120&view=diff
==============================================================================
--- erp5/trunk/products/ERP5SyncML/XMLSyncUtils.py [utf8] (original)
+++ erp5/trunk/products/ERP5SyncML/XMLSyncUtils.py [utf8] Thu Oct 29 16:00:20 2009
@@ -977,13 +977,18 @@
         signature.setObjectId(object_id)
         subscriber.addSignature(signature)
       force = signature.getForce()
-      partial_data = '%s' % action.xpath('string(.//syncml:Item/syncml:Data/syncml:Partial)')
+      partial_node = action.find('.//%(uri)sItem/%(uri)sData/%(uri)sPartial' % {'uri': '{SYNCML:SYNCML1.2}'})
+      partial_data = partial_node is not None and partial_node.text or ''
       if not self.checkActionMoreData(action):
         data_subnode = None
-        if partial_data:
-          if signature.hasPartialXML():
+        if partial_node is not None:
+          if not partial_data:
+            data_subnode = signature.getPartialXML(default='')
+            signature.setPartialXML(None)
+          elif signature.hasPartialXML():
             signature.appendPartialXML(partial_data)
             data_subnode = signature.getPartialXML()
+            signature.setPartialXML(None)
           else:
             data_subnode = partial_data
           #LOG('applyActionList', DEBUG, 'data_subnode: %s' % data_subnode)




More information about the Erp5-report mailing list