From 280f6cf1c11eb6839300a7cb97ba72ab2daec758 Mon Sep 17 00:00:00 2001 From: Emmanuel Viennet Date: Wed, 20 Oct 2021 22:34:06 +0200 Subject: [PATCH] Fix etud_info xml quote --- app/scodoc/sco_utils.py | 14 +++++++++++--- app/scodoc/sco_xml.py | 2 +- app/views/scolar.py | 6 +++++- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/app/scodoc/sco_utils.py b/app/scodoc/sco_utils.py index e5dec56b8..d3acdb3d0 100644 --- a/app/scodoc/sco_utils.py +++ b/app/scodoc/sco_utils.py @@ -572,17 +572,24 @@ def sendJSON(data, attached=False): ) -def sendXML(data, tagname=None, force_outer_xml_tag=True, attached=False): +def sendXML(data, tagname=None, force_outer_xml_tag=True, attached=False, quote=True): if type(data) != list: data = [data] # always list-of-dicts if force_outer_xml_tag: data = [{tagname: data}] tagname += "_list" - doc = sco_xml.simple_dictlist2xml(data, tagname=tagname) + doc = sco_xml.simple_dictlist2xml(data, tagname=tagname, quote=quote) return send_file(doc, filename="sco_data.xml", mime=XML_MIMETYPE, attached=attached) -def sendResult(data, name=None, format=None, force_outer_xml_tag=True, attached=False): +def sendResult( + data, + name=None, + format=None, + force_outer_xml_tag=True, + attached=False, + quote_xml=True, +): if (format is None) or (format == "html"): return data elif format == "xml": # name is outer tagname @@ -591,6 +598,7 @@ def sendResult(data, name=None, format=None, force_outer_xml_tag=True, attached= tagname=name, force_outer_xml_tag=force_outer_xml_tag, attached=attached, + quote=quote_xml, ) elif format == "json": return sendJSON(data, attached=attached) diff --git a/app/scodoc/sco_xml.py b/app/scodoc/sco_xml.py index 633d27142..ea3c3ee93 100644 --- a/app/scodoc/sco_xml.py +++ b/app/scodoc/sco_xml.py @@ -134,4 +134,4 @@ def xml_to_dicts(element): for child in element.childNodes: if child.nodeType == ELEMENT_NODE: childs.append(xml_to_dicts(child)) - return (element.nodeName, d, childs) \ No newline at end of file + return (element.nodeName, d, childs) diff --git a/app/views/scolar.py b/app/views/scolar.py index 0e06d9246..74e80a1a8 100644 --- a/app/views/scolar.py +++ b/app/views/scolar.py @@ -363,6 +363,8 @@ def search_etud_by_name(): @scodoc7func def etud_info(etudid=None, format="xml"): "Donne les informations sur un etudiant" + if not format in ("xml", "json"): + raise ScoValueError("format demandé non supporté par cette fonction.") t0 = time.time() args = sco_etud.make_etud_args(etudid=etudid) cnx = ndb.GetDBConnexion() @@ -449,7 +451,9 @@ def etud_info(etudid=None, format="xml"): ) log("etud_info (%gs)" % (time.time() - t0)) - return scu.sendResult(d, name="etudiant", format=format, force_outer_xml_tag=False) + return scu.sendResult( + d, name="etudiant", format=format, force_outer_xml_tag=False, quote_xml=False + ) # -------------------------- FICHE ETUDIANT --------------------------