def prompt_parameters(self, xml): logging.debug('got back XML from server:\n%s', xml) # Edited by Olof 2013/04/16: Temporary fix for handling messages containing # XML markup #xml_root = etree.fromstring(xml) xml_root = etree.fromstring(xml, parser=etree.XMLParser(recover=True)) # Special case until Olof implements the saner XML format on the server side if xml_root.tag == 'message': message = dict(type='message', level='info', text='no message') for node in xml_root: option = node.tag.strip() # rename type to level, as type is used for the type # this is unfortunate if option == 'type': option = 'level' message[option] = node.text.strip() fields = [message] else: containers = get_field_containers(xml_root) if len(containers) == 0: return fields = get_fields(containers[0]) if self.params_widget is not None: self.layout().removeChild(self.params_widget) self.params_widget = FieldsWidget(fields, self) current_values = self.workflow.get_values_map() logging.debug('current values are: %s', current_values) self.params_widget.set_values(current_values) self.layout().addMultiCellWidget(self.params_widget, 1, 1, 0, 1, Qt.AlignBottom | Qt.AlignLeft) self.params_widget.show() self.ok_button.setEnabled(True)
def prompt_parameters(self, xml): logging.debug('got back XML from server:\n%s', xml) # Edited by Olof 2013/04/16: Temporary fix for handling messages containing # XML markup #xml_root = etree.fromstring(xml) xml_root = etree.fromstring(xml, parser=etree.XMLParser(recover=True)) # Special case until Olof implements the saner XML format on the server side if xml_root.tag == 'message': message = dict(type='message', level='info', text='no message') for node in xml_root: option = node.tag.strip() # rename type to level, as type is used for the type # this is unfortunate if option == 'type': option = 'level' message[option] = node.text.strip() fields = [message] else: containers = get_field_containers(xml_root) if len(containers) == 0: return fields = get_fields(containers[0]) if self.params_widget is not None: self.layout().removeChild(self.params_widget) self.params_widget = FieldsWidget(fields, self) current_values = self.workflow.get_values_map() logging.debug('current values are: %s', current_values) self.params_widget.set_values(current_values) self.layout().addMultiCellWidget(self.params_widget, 1, 1, 0, 1) self.params_widget.show() self.ok_button.setEnabled(True)