Mercurial > libervia-backend
diff sat/plugins/plugin_exp_pubsub_schema.py @ 3271:abca25af06d7
plugin pubsub schema, tools (common/template xmlui): use a JID for publisher:
- a JidWidget is used instead of text for publisher, nothing is set if publisher attribute
doesn't exist
- added missing JidWidget implementation in tools.common.template_xmlui
author | Goffi <goffi@goffi.org> |
---|---|
date | Mon, 18 May 2020 23:37:04 +0200 |
parents | 6cf4bd6972c2 |
children | 71761e9fb984 |
line wrap: on
line diff
--- a/sat/plugins/plugin_exp_pubsub_schema.py Mon May 18 23:31:55 2020 +0200 +++ b/sat/plugins/plugin_exp_pubsub_schema.py Mon May 18 23:37:04 2020 +0200 @@ -310,17 +310,23 @@ form = data_form.Form.fromElement(x_elt) if form_ns and form.formNamespace != form_ns: continue + prepend = [ + ("label", "id"), + ("text", item_elt["id"], "id"), + ("label", "publisher"), + ] + try: + publisher = jid.JID(item_elt['publisher']) + except (KeyError, jid.InvalidFormat): + pass + else: + prepend.append(("jid", publisher, "publisher")) xmlui = xml_tools.dataFormResult2XMLUI( form, schema_form, # FIXME: conflicts with schema (i.e. if "id" or "publisher" already exists) # are not checked - prepend=( - ("label", "id"), - ("text", item_elt["id"], "id"), - ("label", "publisher"), - ("text", item_elt.getAttribute("publisher", ""), "publisher"), - ), + prepend=prepend, filters=filters, read_only=False, )