1
0
forked from ScoDoc/ScoDoc

Fix: xml exports double quote

This commit is contained in:
Emmanuel Viennet 2022-08-05 07:03:35 +02:00
parent 45a5c8ae81
commit 1a096b53bc
3 changed files with 9 additions and 9 deletions

View File

@ -183,18 +183,18 @@ def formation_import_xml(doc: str, import_tags=True):
# log("formation_import_xml: doc=%s" % doc) # log("formation_import_xml: doc=%s" % doc)
try: try:
dom = xml.dom.minidom.parseString(doc) dom = xml.dom.minidom.parseString(doc)
except: except Exception as exc:
log("formation_import_xml: invalid XML data") log("formation_import_xml: invalid XML data")
raise ScoValueError("Fichier XML invalide") raise ScoValueError("Fichier XML invalide") from exc
try: try:
f = dom.getElementsByTagName("formation")[0] # or dom.documentElement f = dom.getElementsByTagName("formation")[0] # or dom.documentElement
D = sco_xml.xml_to_dicts(f) D = sco_xml.xml_to_dicts(f)
except: except Exception as exc:
raise ScoFormatError( raise ScoFormatError(
"""Ce document xml ne correspond pas à un programme exporté par ScoDoc. """Ce document xml ne correspond pas à un programme exporté par ScoDoc.
(élément 'formation' inexistant par exemple).""" (élément 'formation' inexistant par exemple)."""
) ) from exc
assert D[0] == "formation" assert D[0] == "formation"
F = D[1] F = D[1]
# F_quoted = F.copy() # F_quoted = F.copy()
@ -213,14 +213,14 @@ def formation_import_xml(doc: str, import_tags=True):
res = cursor.fetchall() res = cursor.fetchall()
try: try:
version = int(res[0][0]) + 1 version = int(res[0][0]) + 1
except: except (ValueError, IndexError, TypeError):
version = 1 version = 1
F["version"] = version F["version"] = version
# create formation # create formation
# F_unquoted = F.copy() # F_unquoted = F.copy()
# unescape_html_dict(F_unquoted) # unescape_html_dict(F_unquoted)
formation_id = sco_edit_formation.do_formation_create(F) formation_id = sco_edit_formation.do_formation_create(F)
log("formation %s created" % formation_id) log(f"formation {formation_id} created")
ues_old2new = {} # xml ue_id : new ue_id ues_old2new = {} # xml ue_id : new ue_id
modules_old2new = {} # xml module_id : new module_id modules_old2new = {} # xml module_id : new module_id
# (nb: mecanisme utilise pour cloner semestres seulement, pas pour I/O XML) # (nb: mecanisme utilise pour cloner semestres seulement, pas pour I/O XML)

View File

@ -704,7 +704,7 @@ def sendXML(
tagname=None, tagname=None,
force_outer_xml_tag=True, force_outer_xml_tag=True,
attached=False, attached=False,
quote=True, quote=False,
filename=None, filename=None,
): ):
if type(data) != list: if type(data) != list:
@ -724,7 +724,7 @@ def sendResult(
format=None, format=None,
force_outer_xml_tag=True, force_outer_xml_tag=True,
attached=False, attached=False,
quote_xml=True, quote_xml=False,
filename=None, filename=None,
): ):
if (format is None) or (format == "html"): if (format is None) or (format == "html"):

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<formation id="220" titre="BUT R&amp;amp;T" version="1" formation_code="V1RET" dept_id="5" acronyme="BUT R&amp;amp;T" titre_officiel="Bachelor technologique réseaux et télécommunications" type_parcours="700" formation_id="220"> <formation id="220" titre="BUT R&amp;T" version="1" formation_code="V1RET" dept_id="5" acronyme="BUT R&amp;T" titre_officiel="Bachelor technologique réseaux et télécommunications" type_parcours="700" formation_id="220">
<ue acronyme="RT1.1" numero="1" titre="Administrer les réseaux et lInternet" type="0" ue_code="UCOD11" ects="12.0" is_external="0" code_apogee="" coefficient="0.0" semestre_idx="1" color="#B80004" reference="1896"> <ue acronyme="RT1.1" numero="1" titre="Administrer les réseaux et lInternet" type="0" ue_code="UCOD11" ects="12.0" is_external="0" code_apogee="" coefficient="0.0" semestre_idx="1" color="#B80004" reference="1896">
<matiere titre="Administrer les réseaux et lInternet" numero="1"> <matiere titre="Administrer les réseaux et lInternet" numero="1">
<module titre="Initiation aux réseaux informatiques" abbrev="Init aux réseaux informatiques" code="R101" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="1.0" ects="" semestre_id="1" numero="10" code_apogee="" module_type="2"> <module titre="Initiation aux réseaux informatiques" abbrev="Init aux réseaux informatiques" code="R101" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="1.0" ects="" semestre_id="1" numero="10" code_apogee="" module_type="2">