def process_configuration_form_success(self, stanza): """ Process successful result of a room configuration form request. :Parameters: - `stanza`: the stanza received. :Types: - `stanza`: `Presence` """ if stanza.get_query_ns() != MUC_OWNER_NS: raise ValueError, "Bad result namespace" # TODO: ProtocolError query = stanza.get_query() form = None for el in xml_element_ns_iter(query.children, DATAFORM_NS): form = Form(el) break if not form: raise ValueError, "No form received" # TODO: ProtocolError self.configuration_form = form self.handler.configuration_form_received(form)
def _new_from_xml(cls, xmlnode): """Create a new `Option` object from an XML element. :Parameters: - `xmlnode`: the XML element. :Types: - `xmlnode`: `libxml2.xmlNode` :return: the object created. :returntype: `Option` """ label = from_utf8(xmlnode.prop("label")) child = xmlnode.children value = None for child in xml_element_ns_iter(xmlnode.children, DATAFORM_NS): if child.name == "value": value = from_utf8(child.getContent()) break if value is None: raise BadRequestProtocolError, "No value in <option/> element" return cls(value, label)