[Erp5-report] r15534 - in /erp5/trunk/products/ERP5SyncML: Subscription.py XMLSyncUtils.py

nobody at svn.erp5.org nobody at svn.erp5.org
Tue Aug 7 17:07:57 CEST 2007


Author: nicolas
Date: Tue Aug  7 17:07:57 2007
New Revision: 15534

URL: http://svn.erp5.org?rev=15534&view=rev
Log:
Add temporary management of deleted objects

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

Modified: erp5/trunk/products/ERP5SyncML/Subscription.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5SyncML/Subscription.py?rev=15534&r1=15533&r2=15534&view=diff
==============================================================================
--- erp5/trunk/products/ERP5SyncML/Subscription.py (original)
+++ erp5/trunk/products/ERP5SyncML/Subscription.py Tue Aug  7 17:07:57 2007
@@ -932,11 +932,11 @@
     xml_mapping = getattr(self, 'xml_mapping', None)
     return xml_mapping
 
-  def getXMLFromObject(self, object):
+  def getXMLFromObject(self, object, force=0):
     """
       return the xml mapping
     """
-    xml_mapping = self.getXMLMapping()
+    xml_mapping = self.getXMLMapping(force=force)
     xml = ''
     if xml_mapping is not None:
       func = getattr(object, xml_mapping, None)

Modified: erp5/trunk/products/ERP5SyncML/XMLSyncUtils.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5SyncML/XMLSyncUtils.py?rev=15534&r1=15533&r2=15534&view=diff
==============================================================================
--- erp5/trunk/products/ERP5SyncML/XMLSyncUtils.py (original)
+++ erp5/trunk/products/ERP5SyncML/XMLSyncUtils.py Tue Aug  7 17:07:57 2007
@@ -1090,8 +1090,8 @@
             data_subnode = self.getDataSubNode(action)
         if action.nodeName == 'Add':
           # Then store the xml of this new subobject
+          reset = 0
           if object is None:
-            #if object_id is not None:
             add_data = conduit.addNode(xml=data_subnode, 
                 object=destination, object_id=object_id)
             if add_data['conflict_list'] not in ('', None, []):
@@ -1103,6 +1103,7 @@
               signature.setPath(object.getPhysicalPath())
               signature.setObjectId(object.getId())
           else:
+            reset = 1
             #Object was retrieve but need to be updated without recreated
             #usefull when an object is only deleted by workflow.
             add_data = conduit.addNode(xml=data_subnode,
@@ -1113,17 +1114,21 @@
               conflict_list += add_data['conflict_list']
           if object is not None:
             #LOG('SyncModif',0,'addNode, found the object')
-            #mapping = getattr(object,domain.getXMLMapping(),None)
-            xml_object = domain.getXMLFromObject(object)
-            #if mapping is not None:
-            #  xml_object = mapping()
+            if reset:
+              #After a reset we want copy the LAST XML view on Signature.
+              #this implementation is not sufficient, need to be improved.
+              string_io = StringIO()
+              PrettyPrint(data_subnode, stream=string_io)
+              xml_object = string_io.getvalue()
+            else:
+              xml_object = domain.getXMLFromObject(object)
             signature.setStatus(self.SYNCHRONIZED)
             #signature.setId(object.getId())
             signature.setPath(object.getPhysicalPath())
             signature.setXML(xml_object)
             xml_confirmation += self.SyncMLConfirmation(
-                cmd_id=cmd_id, 
-                cmd='Add', 
+                cmd_id=cmd_id,
+                cmd='Add',
                 sync_code=self.ITEM_ADDED,
                 remote_xml=action)
             cmd_id +=1




More information about the Erp5-report mailing list