changeset 981:58a57ce5932a

core (XMLUI): _cleanValue method to avoid issues with DBus types (must be deleted in the future)
author Goffi <goffi@goffi.org>
date Mon, 07 Apr 2014 16:22:35 +0200
parents f0bba18835ef
children 0e80ee1fe9af
files src/tools/xml_tools.py
diffstat 1 files changed, 13 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/tools/xml_tools.py	Mon Apr 07 16:22:35 2014 +0200
+++ b/src/tools/xml_tools.py	Mon Apr 07 16:22:35 2014 +0200
@@ -151,12 +151,24 @@
     dataFormResult2AdvancedList(xmlui, form_xml)
     return xmlui
 
+def _cleanValue(value):
+    """Workaround method to avoid DBus types with D-Bus bridge
+
+    @param value: value to clean
+    @return: value in a non DBus type (only clean string yet)
+    """
+    # XXX: must be removed when DBus types will no cause problems anymore
+    # FIXME: should be cleaned inside D-Bus bridge itself
+    if isinstance(value, basestring):
+        return unicode(value)
+    return value
+
 def XMLUIResult2DataFormResult(xmlui_data):
     """ Extract form data from a XMLUI return
     @xmlui_data: data returned by frontends for XMLUI form
     @return: dict of data usable by Wokkel's dataform
     """
-    return {key[len(SAT_FORM_PREFIX):]: value for key, value in xmlui_data.iteritems() if key.startswith(SAT_FORM_PREFIX)}
+    return {key[len(SAT_FORM_PREFIX):]: _cleanValue(value) for key, value in xmlui_data.iteritems() if key.startswith(SAT_FORM_PREFIX)}
 
 def formEscape(name):
     """ Return escaped name for forms """