diff --git a/app/scodoc/sco_groups.py b/app/scodoc/sco_groups.py
index 70d505f62..d2ca67762 100644
--- a/app/scodoc/sco_groups.py
+++ b/app/scodoc/sco_groups.py
@@ -39,9 +39,10 @@ import re
import sets
import operator
-# XML generation package (apt-get install jaxml)
-import jaxml
import xml.dom.minidom
+from xml.etree import ElementTree
+from xml.etree.ElementTree import Element
+
import app.scodoc.sco_utils as scu
import app.scodoc.notesdb as ndb
@@ -52,9 +53,11 @@ from app.scodoc import sco_codes_parcours
from app.scodoc import sco_core
from app.scodoc import sco_etud
from app.scodoc import sco_permissions_check
+from app.scodoc import sco_xml
from app.scodoc.sco_exceptions import ScoException, AccessDenied, ScoValueError
from app.scodoc.sco_permissions import Permission
from app.scodoc.TrivialFormulator import TrivialFormulator
+
import six
@@ -427,13 +430,16 @@ def formsemestre_partition_list(context, formsemestre_id, format="xml", REQUEST=
return scu.sendResult(REQUEST, partitions, name="partition", format=format)
+# Encore utilisé par groupmgr.js
def XMLgetGroupsInPartition(context, partition_id, REQUEST=None): # was XMLgetGroupesTD
"""
Deprecated: use group_list
Liste des étudiants dans chaque groupe de cette partition.
-
-
+
+
+
+ ...
"""
from app.scodoc import sco_formsemestre
@@ -448,60 +454,58 @@ def XMLgetGroupsInPartition(context, partition_id, REQUEST=None): # was XMLgetG
etuds_set = set(nt.inscrdict)
# XML response:
REQUEST.RESPONSE.setHeader("content-type", scu.XML_MIMETYPE)
- doc = jaxml.XML_document(encoding=scu.SCO_ENCODING)
- doc._text('')
- doc._push()
-
+ doc = Element("ajax-response")
+ x_response = Element("response", type="object", id="MyUpdater")
+ doc.append(x_response)
for group in groups:
- doc._push()
- doc.group(
+ x_group = Element(
+ "group",
partition_id=partition_id,
partition_name=partition["partition_name"],
group_id=group["group_id"],
group_name=group["group_name"],
)
+ x_response.append(x_group)
for e in get_group_members(context, group["group_id"]):
etud = sco_etud.get_etud_info(etudid=e["etudid"], filled=1)[0]
- doc._push()
- doc.etud(
- etudid=e["etudid"],
- civilite=etud["civilite_str"],
- sexe=etud["civilite_str"], # compat
- nom=sco_etud.format_nom(etud["nom"]),
- prenom=sco_etud.format_prenom(etud["prenom"]),
- origin=comp_origin(etud, sem),
+ x_group.append(
+ Element(
+ "etud",
+ etudid=e["etudid"],
+ civilite=etud["civilite_str"],
+ sexe=etud["civilite_str"], # compat
+ nom=sco_etud.format_nom(etud["nom"]),
+ prenom=sco_etud.format_prenom(etud["prenom"]),
+ origin=comp_origin(etud, sem),
+ )
)
if e["etudid"] in etuds_set:
etuds_set.remove(e["etudid"]) # etudiant vu dans un groupe
- doc._pop()
- doc._pop()
# Ajoute les etudiants inscrits au semestre mais dans aucun groupe de cette partition:
if etuds_set:
- doc._push()
- doc.group(
+ x_group = Element(
+ "group",
partition_id=partition_id,
partition_name=partition["partition_name"],
group_id="_none_",
group_name="",
)
+ doc.append(x_group)
for etudid in etuds_set:
etud = sco_etud.get_etud_info(etudid=etudid, filled=1)[0]
- doc._push()
- doc.etud(
- etudid=etud["etudid"],
- sexe=etud["civilite_str"],
- nom=sco_etud.format_nom(etud["nom"]),
- prenom=sco_etud.format_prenom(etud["prenom"]),
- origin=comp_origin(etud, sem),
+ x_group.append(
+ Element(
+ "etud",
+ etudid=etud["etudid"],
+ sexe=etud["civilite_str"],
+ nom=sco_etud.format_nom(etud["nom"]),
+ prenom=sco_etud.format_prenom(etud["prenom"]),
+ origin=comp_origin(etud, sem),
+ )
)
- doc._pop()
- doc._pop()
- doc._pop()
-
- doc._text("")
log("XMLgetGroupsInPartition: %s seconds" % (time.time() - t0))
- return repr(doc)
+ return sco_xml.XML_HEADER + ElementTree.tostring(doc)
def comp_origin(etud, cur_sem):