From b385a19b75aa9efe4e7c6d1cc72703eef0fa7896 Mon Sep 17 00:00:00 2001 From: Goffi Date: Sat, 19 Jan 2019 11:39:02 +0100 Subject: [PATCH] plugin pubsub schema: handle XHTML fields --- sat/plugins/plugin_exp_pubsub_schema.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/sat/plugins/plugin_exp_pubsub_schema.py b/sat/plugins/plugin_exp_pubsub_schema.py index 0ef72712..8563628f 100755 --- a/sat/plugins/plugin_exp_pubsub_schema.py +++ b/sat/plugins/plugin_exp_pubsub_schema.py @@ -372,17 +372,19 @@ class PubsubSchema(object): ): values_list = [values_list] if deserialise: - if field.fieldType == "boolean": + if field.fieldType == u"boolean": values_list = [C.bool(v) for v in values_list] - elif field.fieldType == "text-multi": + elif field.fieldType == u"text-multi": # for text-multi, lines must be put on separate values values_list = list( itertools.chain(*[v.splitlines() for v in values_list]) ) - - elif "jid" in field.fieldType: + elif xml_tools.isXHTMLField(field): + values_list = [generic.parseXml(v.encode("utf-8")) + for v in values_list] + elif u"jid" in (field.fieldType or u""): values_list = [jid.JID(v) for v in values_list] - if "list" in field.fieldType: + if u"list" in (field.fieldType or u""): # for lists, we check that given values are allowed in form allowed_values = [o.value for o in field.options] values_list = [v for v in values_list if v in allowed_values]