plugin pubsub schema: handle XHTML fields

This commit is contained in:
Goffi 2019-01-19 11:39:02 +01:00
commit b385a19b75

View file

@ -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]