[Erp5-report] r25190 - in /erp5/trunk/products/ERP5Type: ./ Core/
nobody at svn.erp5.org
nobody at svn.erp5.org
Tue Jan 20 01:06:15 CET 2009
Author: nicolas
Date: Tue Jan 20 01:06:14 2009
New Revision: 25190
URL: http://svn.erp5.org?rev=25190&view=rev
Log:
- Fix non asXML recursion for subobjects introduce in r25154
- Store Marshaler tree in a CDATA node to be compliant with erp5diff
Modified:
erp5/trunk/products/ERP5Type/Base.py
erp5/trunk/products/ERP5Type/Core/Folder.py
erp5/trunk/products/ERP5Type/XMLExportImport.py
Modified: erp5/trunk/products/ERP5Type/Base.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Base.py?rev=25190&r1=25189&r2=25190&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Base.py [utf8] (original)
+++ erp5/trunk/products/ERP5Type/Base.py [utf8] Tue Jan 20 01:06:14 2009
@@ -2817,11 +2817,11 @@
self.reindexObject(*args, **kw)
security.declareProtected( Permissions.AccessContentsInformation, 'asXML' )
- def asXML(self):
+ def asXML(self, root=None):
"""
Generate an xml text corresponding to the content of this object
"""
- return Base_asXML(self)
+ return Base_asXML(self, root=root)
# Optimized Menu System
security.declarePublic('allowedContentTypes')
Modified: erp5/trunk/products/ERP5Type/Core/Folder.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Core/Folder.py?rev=25190&r1=25189&r2=25190&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Core/Folder.py [utf8] (original)
+++ erp5/trunk/products/ERP5Type/Core/Folder.py [utf8] Tue Jan 20 01:06:14 2009
@@ -1224,11 +1224,11 @@
return error_list
security.declareProtected(Permissions.AccessContentsInformation, 'asXML')
- def asXML(self, omit_xml_declaration=True):
+ def asXML(self, omit_xml_declaration=True, root=None):
"""
Generate an xml text corresponding to the content of this object
"""
- return Folder_asXML(self, omit_xml_declaration=omit_xml_declaration)
+ return Folder_asXML(self, omit_xml_declaration=omit_xml_declaration, root=root)
# Optimized Menu System
security.declarePublic('getVisibleAllowedContentTypeList')
Modified: erp5/trunk/products/ERP5Type/XMLExportImport.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/XMLExportImport.py?rev=25190&r1=25189&r2=25190&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/XMLExportImport.py [utf8] (original)
+++ erp5/trunk/products/ERP5Type/XMLExportImport.py [utf8] Tue Jan 20 01:06:14 2009
@@ -98,8 +98,7 @@
ascii_data = msg.get_payload()
sub_object.text = ascii_data
elif prop_type in ('lines', 'tokens',):
- value_as_node = etree.XML(marshaler(value))
- sub_object.append(value_as_node)
+ sub_object.text = etree.CDATA(marshaler(value))
elif prop_type in ('text', 'string',):
sub_object.text = unicode(escape(value), 'utf-8')
elif prop_type != 'None':
@@ -132,43 +131,41 @@
for user_role in self.get_local_roles():
local_role_node = SubElement(object, 'local_role',
attrib=dict(id=user_role[0], type='tokens'))
- role_list_node = etree.XML(marshaler(user_role[1]))
- local_role_node.append(role_list_node)
+ local_role_node.text = etree.CDATA(marshaler(user_role[1]))
if getattr(self, 'get_local_permissions', None) is not None:
for user_permission in self.get_local_permissions():
local_permission_node = SubElement(object, 'local_permission',
attrib=dict(id=user_permission[0], type='tokens'))
- permission_list_node = etree.XML(marshaler(user_permission[1]))
- local_permission_node.append(permission_list_node)
+ local_permission_node.text = etree.CDATA(marshaler(user_permission[1]))
# Sometimes theres is roles specified for groups, like with CPS
if getattr(self, 'get_local_group_roles', None) is not None:
for group_role in self.get_local_group_roles():
local_group_node = SubElement(object, 'local_group',
attrib=dict(id=group_role[0], type='tokens'))
- group_role_node = etree.XML(marshaler(group_role[1]))
- local_group_node.append(group_role_node)
+ local_group_node.text = etree.CDATA(marshaler(group_role[1]))
if return_as_object:
return root
return etree.tostring(root, encoding='utf-8',
xml_declaration=True, pretty_print=True)
-def Folder_asXML(object, omit_xml_declaration=True):
+def Folder_asXML(object, omit_xml_declaration=True, root=None):
"""
Generate an xml text corresponding to the content of this object
"""
xml_declaration = not omit_xml_declaration
from Products.ERP5Type.Base import Base
self = object
- root = Element('erp5')
+ if root is None:
+ root = Element('erp5')
Base_asXML(self, root=root)
- root_node = root.xpath('/erp5/object')[0]
+ root_node = root.find('object')
# Make sure the list of sub objects is ordered
id_list = sorted(self.objectIds())
# Append to the xml the xml of subobjects
for id in id_list:
o = self._getOb(id)
if issubclass(o.__class__, Base):
- Base_asXML(o, root=root_node)
+ o.asXML(root=root_node)
return etree.tostring(root, encoding='utf-8',
xml_declaration=xml_declaration, pretty_print=True)
More information about the Erp5-report
mailing list