[Erp5-report] r35816 nicolas - /erp5/trunk/products/ERP5SyncML/Conduit/ERP5Conduit.py

nobody at svn.erp5.org nobody at svn.erp5.org
Mon May 31 18:26:14 CEST 2010


Author: nicolas
Date: Mon May 31 18:26:13 2010
New Revision: 35816

URL: http://svn.erp5.org?rev=35816&view=rev
Log:
- Use Unmarshaller compatible with new asXML format.
- remove compatibility support of CPS
- Coding style

Modified:
    erp5/trunk/products/ERP5SyncML/Conduit/ERP5Conduit.py

Modified: erp5/trunk/products/ERP5SyncML/Conduit/ERP5Conduit.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5SyncML/Conduit/ERP5Conduit.py?rev=35816&r1=35815&r2=35816&view=diff
==============================================================================
--- erp5/trunk/products/ERP5SyncML/Conduit/ERP5Conduit.py [utf8] (original)
+++ erp5/trunk/products/ERP5SyncML/Conduit/ERP5Conduit.py [utf8] Mon May 31 18:26:13 2010
@@ -29,6 +29,7 @@
 
 from Products.ERP5SyncML.XMLSyncUtils import XMLSyncUtilsMixin
 from Products.ERP5SyncML.Conflict import Conflict
+from Products.ERP5Type.XMLExportImport import MARSHALLER_NAMESPACE_URI
 from Products.CMFCore.utils import getToolByName
 from DateTime.DateTime import DateTime
 from email.MIMEBase import MIMEBase
@@ -822,49 +823,38 @@
         action_list.append(subnode)
     return action_list
 
-  security.declareProtected(Permissions.AccessContentsInformation,'convertXmlValue')
+  security.declareProtected(Permissions.AccessContentsInformation,
+                                                             'convertXmlValue')
   def convertXmlValue(self, node, data_type=None):
-    """
-    It is possible that the xml change the value, for example
-    there is some too much '\n' and some spaces. We have to do some extra
-    things so that we convert correctly the value
-    XXXNicolas: I'm totally disagree with, so i comment this code
-    """
-    if node is None: return None
+    """Cast xml information into appropriate python type
+    """
+    if node is None:
+      return None
     if data_type is None:
       data_type = self.getPropertyType(node)
-    if data_type == self.none_type: return None
+    if data_type == self.none_type:
+      return None
     data = node.text
     if data is not None and isinstance(data, unicode):
       data = data.encode('utf-8')
-    elif data is None:
-      if data_type in self.list_type_list:
-        return ()
-      elif data_type in self.text_type_list:
-        return ''
+    elif data is None and data_type in self.text_type_list:
+      return ''
     # We can now convert string in tuple, dict, binary...
     if data_type in self.list_type_list:
-      data = unmarshaler(node.text)
+      data = unmarshaller(node[0])
     elif data_type in self.text_type_list:
       data = unescape(data)
     elif data_type in self.data_type_list:
       if data is None:
-        # data is in blocks
-        data = ''.join([standard_b64decode(block.text) \
-               for block in node.iterchildren()])
+        # data is splitted inside  block_data nodes
+        data = ''.join([standard_b64decode(block.text) for\
+                                                 block in node.iterchildren()])
     elif data_type in self.pickle_type_list:
       data = pickle.loads(standard_b64decode(data))
     elif data_type in self.date_type_list:
       data = DateTime(data)
     elif data_type in self.int_type_list:
       data = int(data)
-    elif data_type in self.dict_type_list: # only usefull for CPS, with data = '{fr:1}'
-      if data == '{}':
-        data = {}
-      else:
-        dict_list = map(lambda x:x.split(':'), data[1:-1].split(','))
-        data = map(lambda (x,y):(x.replace(' ','').replace("'",''),int(y)),dict_list)
-        data = dict(data)
     return data
 
   # XXX is it the right place ? It should be in XupdateUtils, but here we




More information about the Erp5-report mailing list