[Erp5-report] r28098 - /erp5/trunk/products/Formulator/FormToXML.py

nobody at svn.erp5.org nobody at svn.erp5.org
Thu Jul 16 17:10:55 CEST 2009


Author: nicolas
Date: Thu Jul 16 17:10:54 2009
New Revision: 28098

URL: http://svn.erp5.org?rev=28098&view=rev
Log:
Convert all text values in unicode to handle special chars

Modified:
    erp5/trunk/products/Formulator/FormToXML.py

Modified: erp5/trunk/products/Formulator/FormToXML.py
URL: http://svn.erp5.org/erp5/trunk/products/Formulator/FormToXML.py?rev=28098&r1=28097&r2=28098&view=diff
==============================================================================
--- erp5/trunk/products/Formulator/FormToXML.py [utf8] (original)
+++ erp5/trunk/products/Formulator/FormToXML.py [utf8] Thu Jul 16 17:10:54 2009
@@ -8,6 +8,7 @@
     """Takes a formulator form and serializes it to an XML representation.
     """
     form_as_xml = Element('form')
+    encoding = form.stored_encoding or 'utf-8'
     # export form settings
     for field in form.settings_form.get_fields(include_disabled=1):
       id = field.id
@@ -18,7 +19,7 @@
         else:
           value = 'false'
       sub_element = SubElement(form_as_xml, id)
-      sub_element.text = escape(str(value))
+      sub_element.text = escape(str(value)).decode(encoding)
     groups = SubElement(form_as_xml, 'groups')
     # export form groups
     for group in form.get_groups(include_empty=1):
@@ -55,7 +56,7 @@
             if not isinstance(value, (str, unicode)):
               value = str(value)
             value_element = SubElement(values_element, key)
-          value_element.text = escape(str(value))
+          value_element.text = escape(str(value)).decode(encoding)
 
           tales_element = SubElement(field_element, 'tales')
           items = field.tales.items()
@@ -63,11 +64,11 @@
           for key, value in items:
             if value:
               tale_element = SubElement(tales_element, key)
-              tale_element.text = escape(str(value._text))
+              tale_element.text = escape(str(value._text)).decode(encoding)
           messages = SubElement(field_element, 'messages')
           for message_key in field.get_error_names():
             message_element = SubElement(messages, 'message', name=message_key)
-            message_element.text = escape(field.get_error_message(message_key))
+            message_element.text = escape(field.get_error_message(message_key)).decode(encoding)
     form_as_string = etree.tostring(form_as_xml, encoding='utf-8',
                                     xml_declaration=True, pretty_print=True)
     if form.unicode_mode:




More information about the Erp5-report mailing list