Example #1
0
    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)
Example #2
0
    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)