core (XMLUI): restorer submit_id:
- submit_id was missing due to a previous change in commit a2e4b976e707
- XMLUI.submit_id can now be None (not set) or empty string in addition to normal values
fix bug 102
This commit is contained in:
parent
8a0215a7ec
commit
ea0eb492d5
2 changed files with 10 additions and 6 deletions
|
|
@ -65,7 +65,7 @@ class ProfileManager(object):
|
|||
return self._verifyPassword(data_, profile)
|
||||
|
||||
callback_id = self.host.registerCallback(xmlui_cb, with_data=True, one_shot=True)
|
||||
form_ui = xml_tools.XMLUI("form", title=D_('Profile password for %s') % profile, submit_id=callback_id)
|
||||
form_ui = xml_tools.XMLUI("form", title=D_('Profile password for {}').format(profile), submit_id=callback_id)
|
||||
form_ui.addPassword('profile_password', value='')
|
||||
return {'xmlui': form_ui.toXml()}
|
||||
|
||||
|
|
|
|||
|
|
@ -1065,7 +1065,7 @@ class XMLUI(object):
|
|||
@param submit_id: callback id to call for panel_type we can submit (form, param, dialog)
|
||||
@param session_id: use to keep a session attached to the dialog, must be returned by frontends
|
||||
"""
|
||||
self._introspect()
|
||||
self._introspect() # FIXME: why doing that on each XMLUI ? should be done once
|
||||
if panel_type not in [C.XMLUI_WINDOW, C.XMLUI_FORM, C.XMLUI_PARAM, C.XMLUI_POPUP, C.XMLUI_DIALOG]:
|
||||
raise exceptions.DataError(_("Unknown panel type [%s]") % panel_type)
|
||||
if panel_type == C.XMLUI_FORM and submit_id is None:
|
||||
|
|
@ -1082,7 +1082,7 @@ class XMLUI(object):
|
|||
top_element.setAttribute("type", panel_type)
|
||||
if title:
|
||||
top_element.setAttribute("title", title)
|
||||
self._submit_id = submit_id
|
||||
self.submit_id = submit_id
|
||||
self.session_id = session_id
|
||||
if panel_type == C.XMLUI_DIALOG:
|
||||
if dialog_opt is None:
|
||||
|
|
@ -1133,8 +1133,12 @@ class XMLUI(object):
|
|||
@property
|
||||
def submit_id(self):
|
||||
top_element = self.doc.documentElement
|
||||
if not top_element.hasAttribute("submit"):
|
||||
# getAttribute never return None (it return empty string it attribute doesn't exists)
|
||||
# so we have to manage None here
|
||||
return None
|
||||
value = top_element.getAttribute("submit")
|
||||
return value or None
|
||||
return value
|
||||
|
||||
@submit_id.setter
|
||||
def submit_id(self, value):
|
||||
|
|
@ -1168,7 +1172,7 @@ class XMLUI(object):
|
|||
|
||||
def _createDialog(self, dialog_opt):
|
||||
dialog_type = dialog_opt.setdefault(C.XMLUI_DATA_TYPE, C.XMLUI_DIALOG_MESSAGE)
|
||||
if dialog_type in [C.XMLUI_DIALOG_CONFIRM, C.XMLUI_DIALOG_FILE] and self._submit_id is None:
|
||||
if dialog_type in [C.XMLUI_DIALOG_CONFIRM, C.XMLUI_DIALOG_FILE] and self.submit_id is None:
|
||||
raise exceptions.InternalError(_("Submit ID must be filled for this kind of dialog"))
|
||||
top_element = TopElement(self)
|
||||
level = dialog_opt.get(C.XMLUI_DATA_LVL)
|
||||
|
|
@ -1253,7 +1257,7 @@ def deferXMLUI(host, xmlui, profile):
|
|||
@param profile: %(doc_profile)s
|
||||
@return (data): a deferred which fire the data
|
||||
"""
|
||||
assert xmlui._submit_id == '' # xmlui.submit_id can't be the empty string, but xmlui._submit_id must here
|
||||
assert xmlui.submit_id == ''
|
||||
xmlui_d = defer.Deferred()
|
||||
|
||||
def onSubmit(data, profile):
|
||||
|
|
|
|||
Loading…
Reference in a new issue