core (xml_tools), frontends: added a prefix to XMLUI form names in result data, to avoid name conflicts (e.g.: if a form has name "submit", and this name is also used internally by SàT)

This commit is contained in:
Goffi 2013-12-24 15:43:22 +01:00
commit 3857fff974
2 changed files with 30 additions and 6 deletions

View file

@ -22,6 +22,9 @@ from urwid_satext import sat_widgets
from logging import debug, info, warning, error
from xml.dom import minidom
SAT_FORM_PREFIX = "SAT_FORM_"
def getText(node):
"""Get child text nodes
@param node: dom Node
@ -254,13 +257,14 @@ class XMLUI(urwid.WidgetWrap):
def onFormSubmitted(self, button):
selected_values = []
for ctrl_name in self.ctrl_list:
escaped = u"%s%s" % (SAT_FORM_PREFIX, ctrl_name)
ctrl = self.ctrl_list[ctrl_name]
if isinstance(ctrl['control'], sat_widgets.List):
selected_values.append((ctrl_name, u'\t'.join([option.value for option in ctrl['control'].getSelectedValues()])))
selected_values.append((escaped, u'\t'.join([option.value for option in ctrl['control'].getSelectedValues()])))
elif isinstance(ctrl['control'], urwid.CheckBox):
selected_values.append((ctrl_name, "true" if ctrl['control'].get_state() else "false"))
selected_values.append((escaped, "true" if ctrl['control'].get_state() else "false"))
else:
selected_values.append((ctrl_name, ctrl['control'].get_edit_text()))
selected_values.append((escaped, ctrl['control'].get_edit_text()))
if self.misc.has_key('action_back'): #FIXME FIXME FIXME: WTF ! Must be cleaned
raise NotImplementedError
elif 'callback' in self.misc: # FIXME: this part is not needed anymore

View file

@ -25,6 +25,8 @@ from xml.dom import minidom
from logging import debug, info, warning, error
from sat.tools.jid import JID
SAT_FORM_PREFIX = "SAT_FORM_"
class XMLUI(wx.Frame):
"""Create an user interface from a SàT xml"""
@ -216,15 +218,16 @@ class XMLUI(wx.Frame):
debug(_("Submitting form"))
selected_values = []
for ctrl_name in self.ctrl_list:
escaped = u"%s%s" % (SAT_FORM_PREFIX, ctrl_name)
ctrl = self.ctrl_list[ctrl_name]
if isinstance(ctrl['control'], wx.ListBox):
label = ctrl['control'].GetStringSelection()
value = ctrl['attr_map'][label]
selected_values.append((ctrl_name, value))
selected_values.append((escaped, value))
elif isinstance(ctrl['control'], wx.CheckBox):
selected_values.append((ctrl_name, "true" if ctrl['control'].GetValue() else "false"))
selected_values.append((escaped, "true" if ctrl['control'].GetValue() else "false"))
else:
selected_values.append((ctrl_name, ctrl['control'].GetValue()))
selected_values.append((escaped, ctrl['control'].GetValue()))
if self.misc.has_key('action_back'): #FIXME FIXME FIXME: WTF ! Must be cleaned
id = self.misc['action_back']("SUBMIT",self.misc['target'], selected_values)
self.host.current_action_ids.add(id)