forked from ScoDoc/ScoDoc
renomme: ue_list, matiere_list
This commit is contained in:
parent
565055b4e5
commit
54ed09ed08
@ -194,7 +194,8 @@ def bonus_tours(notes_sport, coefs, infos=None):
|
|||||||
|
|
||||||
|
|
||||||
def bonus_iutr(notes_sport, coefs, infos=None):
|
def bonus_iutr(notes_sport, coefs, infos=None):
|
||||||
"""Calcul du bonus , regle de l'IUT de Roanne (contribuée par Raphael C., nov 2012)
|
"""Calcul du bonus , règle de l'IUT de Roanne
|
||||||
|
(contribuée par Raphael C., nov 2012)
|
||||||
|
|
||||||
Le bonus est compris entre 0 et 0.35 point.
|
Le bonus est compris entre 0 et 0.35 point.
|
||||||
cette procédure modifie la moyenne de chaque UE capitalisable.
|
cette procédure modifie la moyenne de chaque UE capitalisable.
|
||||||
|
@ -108,7 +108,7 @@ def get_sem_ues_modimpls(formsemestre_id, modimpls=None):
|
|||||||
mod = sco_edit_module.module_list(args={"module_id": modimpl["module_id"]})[0]
|
mod = sco_edit_module.module_list(args={"module_id": modimpl["module_id"]})[0]
|
||||||
modimpl["module"] = mod
|
modimpl["module"] = mod
|
||||||
if not mod["ue_id"] in uedict:
|
if not mod["ue_id"] in uedict:
|
||||||
ue = sco_edit_ue.do_ue_list(args={"ue_id": mod["ue_id"]})[0]
|
ue = sco_edit_ue.ue_list(args={"ue_id": mod["ue_id"]})[0]
|
||||||
uedict[ue["ue_id"]] = ue
|
uedict[ue["ue_id"]] = ue
|
||||||
ues = list(uedict.values())
|
ues = list(uedict.values())
|
||||||
ues.sort(key=lambda u: u["numero"])
|
ues.sort(key=lambda u: u["numero"])
|
||||||
@ -224,15 +224,15 @@ class NotesTable(object):
|
|||||||
# module has been added by formsemestre_compute_modimpls_moyennes
|
# module has been added by formsemestre_compute_modimpls_moyennes
|
||||||
mod = modimpl["module"]
|
mod = modimpl["module"]
|
||||||
if not mod["ue_id"] in uedict:
|
if not mod["ue_id"] in uedict:
|
||||||
ue = sco_edit_ue.do_ue_list(args={"ue_id": mod["ue_id"]})[0]
|
ue = sco_edit_ue.ue_list(args={"ue_id": mod["ue_id"]})[0]
|
||||||
uedict[ue["ue_id"]] = ue
|
uedict[ue["ue_id"]] = ue
|
||||||
else:
|
else:
|
||||||
ue = uedict[mod["ue_id"]]
|
ue = uedict[mod["ue_id"]]
|
||||||
modimpl["ue"] = ue # add ue dict to moduleimpl
|
modimpl["ue"] = ue # add ue dict to moduleimpl
|
||||||
self._matmoys[mod["matiere_id"]] = {}
|
self._matmoys[mod["matiere_id"]] = {}
|
||||||
mat = sco_edit_matiere.do_matiere_list(
|
mat = sco_edit_matiere.matiere_list(args={"matiere_id": mod["matiere_id"]})[
|
||||||
args={"matiere_id": mod["matiere_id"]}
|
0
|
||||||
)[0]
|
]
|
||||||
modimpl["mat"] = mat # add matiere dict to moduleimpl
|
modimpl["mat"] = mat # add matiere dict to moduleimpl
|
||||||
# calcul moyennes du module et stocke dans le module
|
# calcul moyennes du module et stocke dans le module
|
||||||
# nb_inscrits, nb_notes, nb_abs, nb_neutre, moy, median, last_modif=
|
# nb_inscrits, nb_notes, nb_abs, nb_neutre, moy, median, last_modif=
|
||||||
@ -1053,7 +1053,7 @@ class NotesTable(object):
|
|||||||
"Warning: %s capitalized an UE %s which is not part of current sem %s"
|
"Warning: %s capitalized an UE %s which is not part of current sem %s"
|
||||||
% (etudid, ue_id, self.formsemestre_id)
|
% (etudid, ue_id, self.formsemestre_id)
|
||||||
)
|
)
|
||||||
ue = sco_edit_ue.do_ue_list(args={"ue_id": ue_id})[0]
|
ue = sco_edit_ue.ue_list(args={"ue_id": ue_id})[0]
|
||||||
self.uedict[ue_id] = ue # record this UE
|
self.uedict[ue_id] = ue # record this UE
|
||||||
if ue_id not in self._uecoef:
|
if ue_id not in self._uecoef:
|
||||||
cl = formsemestre_uecoef_list(
|
cl = formsemestre_uecoef_list(
|
||||||
|
@ -360,7 +360,7 @@ def formsemestre_bulletinetud_published_dict(
|
|||||||
"decisions_ue"
|
"decisions_ue"
|
||||||
]: # and sco_preferences.get_preference( 'bul_show_uevalid', formsemestre_id): always publish (car utile pour export Apogee)
|
]: # and sco_preferences.get_preference( 'bul_show_uevalid', formsemestre_id): always publish (car utile pour export Apogee)
|
||||||
for ue_id in decision["decisions_ue"].keys():
|
for ue_id in decision["decisions_ue"].keys():
|
||||||
ue = sco_edit_ue.do_ue_list({"ue_id": ue_id})[0]
|
ue = sco_edit_ue.ue_list({"ue_id": ue_id})[0]
|
||||||
d["decision_ue"].append(
|
d["decision_ue"].append(
|
||||||
dict(
|
dict(
|
||||||
ue_id=ue["ue_id"],
|
ue_id=ue["ue_id"],
|
||||||
|
@ -385,7 +385,7 @@ def make_xml_formsemestre_bulletinetud(
|
|||||||
"decisions_ue"
|
"decisions_ue"
|
||||||
]: # and sco_preferences.get_preference( 'bul_show_uevalid', formsemestre_id): always publish (car utile pour export Apogee)
|
]: # and sco_preferences.get_preference( 'bul_show_uevalid', formsemestre_id): always publish (car utile pour export Apogee)
|
||||||
for ue_id in decision["decisions_ue"].keys():
|
for ue_id in decision["decisions_ue"].keys():
|
||||||
ue = sco_edit_ue.do_ue_list({"ue_id": ue_id})[0]
|
ue = sco_edit_ue.ue_list({"ue_id": ue_id})[0]
|
||||||
doc.append(
|
doc.append(
|
||||||
Element(
|
Element(
|
||||||
"decision_ue",
|
"decision_ue",
|
||||||
|
@ -104,7 +104,7 @@ def do_formation_delete(oid):
|
|||||||
raise ScoLockedFormError()
|
raise ScoLockedFormError()
|
||||||
cnx = ndb.GetDBConnexion()
|
cnx = ndb.GetDBConnexion()
|
||||||
# delete all UE in this formation
|
# delete all UE in this formation
|
||||||
ues = sco_edit_ue.do_ue_list({"formation_id": oid})
|
ues = sco_edit_ue.ue_list({"formation_id": oid})
|
||||||
for ue in ues:
|
for ue in ues:
|
||||||
sco_edit_ue.do_ue_delete(ue["ue_id"], force=True)
|
sco_edit_ue.do_ue_delete(ue["ue_id"], force=True)
|
||||||
|
|
||||||
@ -252,7 +252,7 @@ def formation_edit(formation_id=None, create=False):
|
|||||||
do_formation_edit(tf[2])
|
do_formation_edit(tf[2])
|
||||||
return flask.redirect(
|
return flask.redirect(
|
||||||
url_for(
|
url_for(
|
||||||
"notes.ue_list", scodoc_dept=g.scodoc_dept, formation_id=formation_id
|
"notes.ue_table", scodoc_dept=g.scodoc_dept, formation_id=formation_id
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -343,21 +343,21 @@ def module_move(module_id, after=0, redirect=1):
|
|||||||
if redirect:
|
if redirect:
|
||||||
return flask.redirect(
|
return flask.redirect(
|
||||||
url_for(
|
url_for(
|
||||||
"notes.ue_list", scodoc_dept=g.scodoc_dept, formation_id=formation_id
|
"notes.ue_table", scodoc_dept=g.scodoc_dept, formation_id=formation_id
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def ue_move(ue_id, after=0, redirect=1):
|
def ue_move(ue_id, after=0, redirect=1):
|
||||||
"""Move UE before/after previous one (decrement/increment numero)"""
|
"""Move UE before/after previous one (decrement/increment numero)"""
|
||||||
o = sco_edit_ue.do_ue_list({"ue_id": ue_id})[0]
|
o = sco_edit_ue.ue_list({"ue_id": ue_id})[0]
|
||||||
# log('ue_move %s (#%s) after=%s' % (ue_id, o['numero'], after))
|
# log('ue_move %s (#%s) after=%s' % (ue_id, o['numero'], after))
|
||||||
redirect = int(redirect)
|
redirect = int(redirect)
|
||||||
after = int(after) # 0: deplace avant, 1 deplace apres
|
after = int(after) # 0: deplace avant, 1 deplace apres
|
||||||
if after not in (0, 1):
|
if after not in (0, 1):
|
||||||
raise ValueError('invalid value for "after"')
|
raise ValueError('invalid value for "after"')
|
||||||
formation_id = o["formation_id"]
|
formation_id = o["formation_id"]
|
||||||
others = sco_edit_ue.do_ue_list({"formation_id": formation_id})
|
others = sco_edit_ue.ue_list({"formation_id": formation_id})
|
||||||
if len(others) > 1:
|
if len(others) > 1:
|
||||||
idx = [p["ue_id"] for p in others].index(ue_id)
|
idx = [p["ue_id"] for p in others].index(ue_id)
|
||||||
neigh = None # object to swap with
|
neigh = None # object to swap with
|
||||||
@ -378,7 +378,7 @@ def ue_move(ue_id, after=0, redirect=1):
|
|||||||
if redirect:
|
if redirect:
|
||||||
return flask.redirect(
|
return flask.redirect(
|
||||||
url_for(
|
url_for(
|
||||||
"notes.ue_list",
|
"notes.ue_table",
|
||||||
scodoc_dept=g.scodoc_dept,
|
scodoc_dept=g.scodoc_dept,
|
||||||
formation_id=o["formation_id"],
|
formation_id=o["formation_id"],
|
||||||
)
|
)
|
||||||
|
@ -47,7 +47,7 @@ _matiereEditor = ndb.EditableTable(
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def do_matiere_list(*args, **kw):
|
def matiere_list(*args, **kw):
|
||||||
"list matieres"
|
"list matieres"
|
||||||
cnx = ndb.GetDBConnexion()
|
cnx = ndb.GetDBConnexion()
|
||||||
return _matiereEditor.list(cnx, *args, **kw)
|
return _matiereEditor.list(cnx, *args, **kw)
|
||||||
@ -60,12 +60,12 @@ def do_matiere_edit(*args, **kw):
|
|||||||
|
|
||||||
cnx = ndb.GetDBConnexion()
|
cnx = ndb.GetDBConnexion()
|
||||||
# check
|
# check
|
||||||
mat = do_matiere_list({"matiere_id": args[0]["matiere_id"]})[0]
|
mat = matiere_list({"matiere_id": args[0]["matiere_id"]})[0]
|
||||||
if matiere_is_locked(mat["matiere_id"]):
|
if matiere_is_locked(mat["matiere_id"]):
|
||||||
raise ScoLockedFormError()
|
raise ScoLockedFormError()
|
||||||
# edit
|
# edit
|
||||||
_matiereEditor.edit(cnx, *args, **kw)
|
_matiereEditor.edit(cnx, *args, **kw)
|
||||||
formation_id = sco_edit_ue.do_ue_list({"ue_id": mat["ue_id"]})[0]["formation_id"]
|
formation_id = sco_edit_ue.ue_list({"ue_id": mat["ue_id"]})[0]["formation_id"]
|
||||||
sco_edit_formation.invalidate_sems_in_formation(formation_id)
|
sco_edit_formation.invalidate_sems_in_formation(formation_id)
|
||||||
|
|
||||||
|
|
||||||
@ -77,7 +77,7 @@ def do_matiere_create(args):
|
|||||||
|
|
||||||
cnx = ndb.GetDBConnexion()
|
cnx = ndb.GetDBConnexion()
|
||||||
# check
|
# check
|
||||||
ue = sco_edit_ue.do_ue_list({"ue_id": args["ue_id"]})[0]
|
ue = sco_edit_ue.ue_list({"ue_id": args["ue_id"]})[0]
|
||||||
# create matiere
|
# create matiere
|
||||||
r = _matiereEditor.create(cnx, args)
|
r = _matiereEditor.create(cnx, args)
|
||||||
|
|
||||||
@ -96,7 +96,7 @@ def matiere_create(ue_id=None):
|
|||||||
"""Creation d'une matiere"""
|
"""Creation d'une matiere"""
|
||||||
from app.scodoc import sco_edit_ue
|
from app.scodoc import sco_edit_ue
|
||||||
|
|
||||||
UE = sco_edit_ue.do_ue_list(args={"ue_id": ue_id})[0]
|
UE = sco_edit_ue.ue_list(args={"ue_id": ue_id})[0]
|
||||||
H = [
|
H = [
|
||||||
html_sco_header.sco_header(page_title="Création d'une matière"),
|
html_sco_header.sco_header(page_title="Création d'une matière"),
|
||||||
"""<h2>Création d'une matière dans l'UE %(titre)s (%(acronyme)s)</h2>""" % UE,
|
"""<h2>Création d'une matière dans l'UE %(titre)s (%(acronyme)s)</h2>""" % UE,
|
||||||
@ -134,7 +134,7 @@ associé.
|
|||||||
)
|
)
|
||||||
|
|
||||||
dest_url = url_for(
|
dest_url = url_for(
|
||||||
"notes.ue_list", scodoc_dept=g.scodoc_dept, formation_id=UE["formation_id"]
|
"notes.ue_table", scodoc_dept=g.scodoc_dept, formation_id=UE["formation_id"]
|
||||||
)
|
)
|
||||||
|
|
||||||
if tf[0] == 0:
|
if tf[0] == 0:
|
||||||
@ -143,7 +143,7 @@ associé.
|
|||||||
return flask.redirect(dest_url)
|
return flask.redirect(dest_url)
|
||||||
else:
|
else:
|
||||||
# check unicity
|
# check unicity
|
||||||
mats = do_matiere_list(args={"ue_id": ue_id, "titre": tf[2]["titre"]})
|
mats = matiere_list(args={"ue_id": ue_id, "titre": tf[2]["titre"]})
|
||||||
if mats:
|
if mats:
|
||||||
return (
|
return (
|
||||||
"\n".join(H)
|
"\n".join(H)
|
||||||
@ -164,8 +164,8 @@ def do_matiere_delete(oid):
|
|||||||
|
|
||||||
cnx = ndb.GetDBConnexion()
|
cnx = ndb.GetDBConnexion()
|
||||||
# check
|
# check
|
||||||
mat = do_matiere_list({"matiere_id": oid})[0]
|
mat = matiere_list({"matiere_id": oid})[0]
|
||||||
ue = sco_edit_ue.do_ue_list({"ue_id": mat["ue_id"]})[0]
|
ue = sco_edit_ue.ue_list({"ue_id": mat["ue_id"]})[0]
|
||||||
locked = matiere_is_locked(mat["matiere_id"])
|
locked = matiere_is_locked(mat["matiere_id"])
|
||||||
if locked:
|
if locked:
|
||||||
log("do_matiere_delete: mat=%s" % mat)
|
log("do_matiere_delete: mat=%s" % mat)
|
||||||
@ -193,8 +193,8 @@ def matiere_delete(matiere_id=None):
|
|||||||
"""Delete an UE"""
|
"""Delete an UE"""
|
||||||
from app.scodoc import sco_edit_ue
|
from app.scodoc import sco_edit_ue
|
||||||
|
|
||||||
M = do_matiere_list(args={"matiere_id": matiere_id})[0]
|
M = matiere_list(args={"matiere_id": matiere_id})[0]
|
||||||
UE = sco_edit_ue.do_ue_list(args={"ue_id": M["ue_id"]})[0]
|
UE = sco_edit_ue.ue_list(args={"ue_id": M["ue_id"]})[0]
|
||||||
H = [
|
H = [
|
||||||
html_sco_header.sco_header(page_title="Suppression d'une matière"),
|
html_sco_header.sco_header(page_title="Suppression d'une matière"),
|
||||||
"<h2>Suppression de la matière %(titre)s" % M,
|
"<h2>Suppression de la matière %(titre)s" % M,
|
||||||
@ -223,17 +223,17 @@ def matiere_edit(matiere_id=None):
|
|||||||
from app.scodoc import sco_formations
|
from app.scodoc import sco_formations
|
||||||
from app.scodoc import sco_edit_ue
|
from app.scodoc import sco_edit_ue
|
||||||
|
|
||||||
F = do_matiere_list(args={"matiere_id": matiere_id})
|
F = matiere_list(args={"matiere_id": matiere_id})
|
||||||
if not F:
|
if not F:
|
||||||
raise ScoValueError("Matière inexistante !")
|
raise ScoValueError("Matière inexistante !")
|
||||||
F = F[0]
|
F = F[0]
|
||||||
U = sco_edit_ue.do_ue_list(args={"ue_id": F["ue_id"]})
|
U = sco_edit_ue.ue_list(args={"ue_id": F["ue_id"]})
|
||||||
if not F:
|
if not F:
|
||||||
raise ScoValueError("UE inexistante !")
|
raise ScoValueError("UE inexistante !")
|
||||||
U = U[0]
|
U = U[0]
|
||||||
Fo = sco_formations.formation_list(args={"formation_id": U["formation_id"]})[0]
|
Fo = sco_formations.formation_list(args={"formation_id": U["formation_id"]})[0]
|
||||||
|
|
||||||
ues = sco_edit_ue.do_ue_list(args={"formation_id": U["formation_id"]})
|
ues = sco_edit_ue.ue_list(args={"formation_id": U["formation_id"]})
|
||||||
ue_names = ["%(acronyme)s (%(titre)s)" % u for u in ues]
|
ue_names = ["%(acronyme)s (%(titre)s)" % u for u in ues]
|
||||||
ue_ids = [u["ue_id"] for u in ues]
|
ue_ids = [u["ue_id"] for u in ues]
|
||||||
H = [
|
H = [
|
||||||
@ -286,7 +286,7 @@ associé.
|
|||||||
return flask.redirect(dest_url)
|
return flask.redirect(dest_url)
|
||||||
else:
|
else:
|
||||||
# check unicity
|
# check unicity
|
||||||
mats = do_matiere_list(args={"ue_id": tf[2]["ue_id"], "titre": tf[2]["titre"]})
|
mats = matiere_list(args={"ue_id": tf[2]["ue_id"], "titre": tf[2]["titre"]})
|
||||||
if len(mats) > 1 or (len(mats) == 1 and mats[0]["matiere_id"] != matiere_id):
|
if len(mats) > 1 or (len(mats) == 1 and mats[0]["matiere_id"] != matiere_id):
|
||||||
return (
|
return (
|
||||||
"\n".join(H)
|
"\n".join(H)
|
||||||
|
@ -126,8 +126,8 @@ def module_create(matiere_id=None):
|
|||||||
|
|
||||||
if matiere_id is None:
|
if matiere_id is None:
|
||||||
raise ScoValueError("invalid matiere !")
|
raise ScoValueError("invalid matiere !")
|
||||||
M = sco_edit_matiere.do_matiere_list(args={"matiere_id": matiere_id})[0]
|
M = sco_edit_matiere.matiere_list(args={"matiere_id": matiere_id})[0]
|
||||||
UE = sco_edit_ue.do_ue_list(args={"ue_id": M["ue_id"]})[0]
|
UE = sco_edit_ue.ue_list(args={"ue_id": M["ue_id"]})[0]
|
||||||
Fo = sco_formations.formation_list(args={"formation_id": UE["formation_id"]})[0]
|
Fo = sco_formations.formation_list(args={"formation_id": UE["formation_id"]})[0]
|
||||||
parcours = sco_codes_parcours.get_parcours_from_code(Fo["type_parcours"])
|
parcours = sco_codes_parcours.get_parcours_from_code(Fo["type_parcours"])
|
||||||
semestres_indices = list(range(1, parcours.NB_SEM + 1))
|
semestres_indices = list(range(1, parcours.NB_SEM + 1))
|
||||||
@ -241,7 +241,7 @@ def module_create(matiere_id=None):
|
|||||||
do_module_create(tf[2])
|
do_module_create(tf[2])
|
||||||
return flask.redirect(
|
return flask.redirect(
|
||||||
url_for(
|
url_for(
|
||||||
"notes.ue_list",
|
"notes.ue_table",
|
||||||
scodoc_dept=g.scodoc_dept,
|
scodoc_dept=g.scodoc_dept,
|
||||||
formation_id=UE["formation_id"],
|
formation_id=UE["formation_id"],
|
||||||
)
|
)
|
||||||
@ -263,7 +263,7 @@ def do_module_delete(oid):
|
|||||||
<p class="help">Il faut d'abord supprimer le semestre. Mais il est peut être préférable de
|
<p class="help">Il faut d'abord supprimer le semestre. Mais il est peut être préférable de
|
||||||
laisser ce programme intact et d'en créer une nouvelle version pour la modifier.
|
laisser ce programme intact et d'en créer une nouvelle version pour la modifier.
|
||||||
</p>
|
</p>
|
||||||
<a href="{url_for('notes.ue_list', scodoc_dept=g.scodoc_dept,
|
<a href="{url_for('notes.ue_table', scodoc_dept=g.scodoc_dept,
|
||||||
formation_id=mod["formation_id"])}">reprendre</a>
|
formation_id=mod["formation_id"])}">reprendre</a>
|
||||||
"""
|
"""
|
||||||
raise ScoGenError(err_page)
|
raise ScoGenError(err_page)
|
||||||
@ -588,7 +588,7 @@ def formation_add_malus_modules(formation_id, titre=None, redirect=True):
|
|||||||
"""Création d'un module de "malus" dans chaque UE d'une formation"""
|
"""Création d'un module de "malus" dans chaque UE d'une formation"""
|
||||||
from app.scodoc import sco_edit_ue
|
from app.scodoc import sco_edit_ue
|
||||||
|
|
||||||
ue_list = sco_edit_ue.do_ue_list(args={"formation_id": formation_id})
|
ue_list = sco_edit_ue.ue_list(args={"formation_id": formation_id})
|
||||||
|
|
||||||
for ue in ue_list:
|
for ue in ue_list:
|
||||||
# Un seul module de malus par UE:
|
# Un seul module de malus par UE:
|
||||||
@ -610,7 +610,7 @@ def ue_add_malus_module(ue_id, titre=None, code=None):
|
|||||||
"""Add a malus module in this ue"""
|
"""Add a malus module in this ue"""
|
||||||
from app.scodoc import sco_edit_ue
|
from app.scodoc import sco_edit_ue
|
||||||
|
|
||||||
ue = sco_edit_ue.do_ue_list(args={"ue_id": ue_id})[0]
|
ue = sco_edit_ue.ue_list(args={"ue_id": ue_id})[0]
|
||||||
|
|
||||||
if titre is None:
|
if titre is None:
|
||||||
titre = ""
|
titre = ""
|
||||||
@ -629,7 +629,7 @@ def ue_add_malus_module(ue_id, titre=None, code=None):
|
|||||||
)
|
)
|
||||||
|
|
||||||
# Matiere pour placer le module malus
|
# Matiere pour placer le module malus
|
||||||
Matlist = sco_edit_matiere.do_matiere_list(args={"ue_id": ue_id})
|
Matlist = sco_edit_matiere.matiere_list(args={"ue_id": ue_id})
|
||||||
numero = max([mat["numero"] for mat in Matlist]) + 10
|
numero = max([mat["numero"] for mat in Matlist]) + 10
|
||||||
matiere_id = sco_edit_matiere.do_matiere_create(
|
matiere_id = sco_edit_matiere.do_matiere_create(
|
||||||
{"ue_id": ue_id, "titre": "Malus", "numero": numero}
|
{"ue_id": ue_id, "titre": "Malus", "numero": numero}
|
||||||
|
@ -85,7 +85,7 @@ _ueEditor = ndb.EditableTable(
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def do_ue_list(*args, **kw):
|
def ue_list(*args, **kw):
|
||||||
"list UEs"
|
"list UEs"
|
||||||
cnx = ndb.GetDBConnexion()
|
cnx = ndb.GetDBConnexion()
|
||||||
return _ueEditor.list(cnx, *args, **kw)
|
return _ueEditor.list(cnx, *args, **kw)
|
||||||
@ -97,9 +97,7 @@ def do_ue_create(args):
|
|||||||
|
|
||||||
cnx = ndb.GetDBConnexion()
|
cnx = ndb.GetDBConnexion()
|
||||||
# check duplicates
|
# check duplicates
|
||||||
ues = do_ue_list(
|
ues = ue_list({"formation_id": args["formation_id"], "acronyme": args["acronyme"]})
|
||||||
{"formation_id": args["formation_id"], "acronyme": args["acronyme"]}
|
|
||||||
)
|
|
||||||
if ues:
|
if ues:
|
||||||
raise ScoValueError('Acronyme d\'UE "%s" déjà utilisé !' % args["acronyme"])
|
raise ScoValueError('Acronyme d\'UE "%s" déjà utilisé !' % args["acronyme"])
|
||||||
# create
|
# create
|
||||||
@ -124,7 +122,7 @@ def do_ue_delete(ue_id, delete_validations=False, force=False):
|
|||||||
cnx = ndb.GetDBConnexion()
|
cnx = ndb.GetDBConnexion()
|
||||||
log("do_ue_delete: ue_id=%s, delete_validations=%s" % (ue_id, delete_validations))
|
log("do_ue_delete: ue_id=%s, delete_validations=%s" % (ue_id, delete_validations))
|
||||||
# check
|
# check
|
||||||
ue = do_ue_list({"ue_id": ue_id})
|
ue = ue_list({"ue_id": ue_id})
|
||||||
if not ue:
|
if not ue:
|
||||||
raise ScoValueError("UE inexistante !")
|
raise ScoValueError("UE inexistante !")
|
||||||
ue = ue[0]
|
ue = ue[0]
|
||||||
@ -152,7 +150,7 @@ def do_ue_delete(ue_id, delete_validations=False, force=False):
|
|||||||
)
|
)
|
||||||
|
|
||||||
# delete all matiere in this UE
|
# delete all matiere in this UE
|
||||||
mats = sco_edit_matiere.do_matiere_list({"ue_id": ue_id})
|
mats = sco_edit_matiere.matiere_list({"ue_id": ue_id})
|
||||||
for mat in mats:
|
for mat in mats:
|
||||||
sco_edit_matiere.do_matiere_delete(mat["matiere_id"])
|
sco_edit_matiere.do_matiere_delete(mat["matiere_id"])
|
||||||
# delete uecoef and events
|
# delete uecoef and events
|
||||||
@ -177,7 +175,7 @@ def do_ue_delete(ue_id, delete_validations=False, force=False):
|
|||||||
if not force:
|
if not force:
|
||||||
return flask.redirect(
|
return flask.redirect(
|
||||||
url_for(
|
url_for(
|
||||||
"notes.ue_list",
|
"notes.ue_table",
|
||||||
scodoc_dept=g.scodoc_dept,
|
scodoc_dept=g.scodoc_dept,
|
||||||
formation_id=ue["formation_id"],
|
formation_id=ue["formation_id"],
|
||||||
)
|
)
|
||||||
@ -197,7 +195,7 @@ def ue_edit(ue_id=None, create=False, formation_id=None):
|
|||||||
|
|
||||||
create = int(create)
|
create = int(create)
|
||||||
if not create:
|
if not create:
|
||||||
U = do_ue_list(args={"ue_id": ue_id})
|
U = ue_list(args={"ue_id": ue_id})
|
||||||
if not U:
|
if not U:
|
||||||
raise ScoValueError("UE inexistante !")
|
raise ScoValueError("UE inexistante !")
|
||||||
U = U[0]
|
U = U[0]
|
||||||
@ -371,7 +369,7 @@ def ue_edit(ue_id=None, create=False, formation_id=None):
|
|||||||
do_ue_edit(tf[2])
|
do_ue_edit(tf[2])
|
||||||
return flask.redirect(
|
return flask.redirect(
|
||||||
url_for(
|
url_for(
|
||||||
"notes.ue_list", scodoc_dept=g.scodoc_dept, formation_id=formation_id
|
"notes.ue_table", scodoc_dept=g.scodoc_dept, formation_id=formation_id
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -393,7 +391,7 @@ def next_ue_numero(formation_id, semestre_id=None):
|
|||||||
"""Numero d'une nouvelle UE dans cette formation.
|
"""Numero d'une nouvelle UE dans cette formation.
|
||||||
Si le semestre est specifie, cherche les UE ayant des modules de ce semestre
|
Si le semestre est specifie, cherche les UE ayant des modules de ce semestre
|
||||||
"""
|
"""
|
||||||
ue_list = do_ue_list(args={"formation_id": formation_id})
|
ue_list = ue_list(args={"formation_id": formation_id})
|
||||||
if not ue_list:
|
if not ue_list:
|
||||||
return 0
|
return 0
|
||||||
if semestre_id is None:
|
if semestre_id is None:
|
||||||
@ -410,7 +408,7 @@ def next_ue_numero(formation_id, semestre_id=None):
|
|||||||
|
|
||||||
def ue_delete(ue_id=None, delete_validations=False, dialog_confirmed=False):
|
def ue_delete(ue_id=None, delete_validations=False, dialog_confirmed=False):
|
||||||
"""Delete an UE"""
|
"""Delete an UE"""
|
||||||
ue = do_ue_list(args={"ue_id": ue_id})
|
ue = ue_list(args={"ue_id": ue_id})
|
||||||
if not ue:
|
if not ue:
|
||||||
raise ScoValueError("UE inexistante !")
|
raise ScoValueError("UE inexistante !")
|
||||||
ue = ue[0]
|
ue = ue[0]
|
||||||
@ -426,9 +424,9 @@ def ue_delete(ue_id=None, delete_validations=False, dialog_confirmed=False):
|
|||||||
return do_ue_delete(ue_id, delete_validations=delete_validations)
|
return do_ue_delete(ue_id, delete_validations=delete_validations)
|
||||||
|
|
||||||
|
|
||||||
def ue_list(formation_id=None, msg=""):
|
def ue_table(formation_id=None, msg=""): # was ue_list
|
||||||
"""Liste des matières et modules d'une formation, avec liens pour
|
"""Liste des matières et modules d'une formation, avec liens pour
|
||||||
editer (si non verrouillée).
|
éditer (si non verrouillée).
|
||||||
"""
|
"""
|
||||||
from app.scodoc import sco_formations
|
from app.scodoc import sco_formations
|
||||||
from app.scodoc import sco_formsemestre_validation
|
from app.scodoc import sco_formsemestre_validation
|
||||||
@ -440,7 +438,7 @@ def ue_list(formation_id=None, msg=""):
|
|||||||
parcours = sco_codes_parcours.get_parcours_from_code(F["type_parcours"])
|
parcours = sco_codes_parcours.get_parcours_from_code(F["type_parcours"])
|
||||||
locked = sco_formations.formation_has_locked_sems(formation_id)
|
locked = sco_formations.formation_has_locked_sems(formation_id)
|
||||||
|
|
||||||
ue_list = do_ue_list(args={"formation_id": formation_id})
|
ue_list = ue_list(args={"formation_id": formation_id})
|
||||||
# tri par semestre et numero:
|
# tri par semestre et numero:
|
||||||
_add_ue_semestre_id(ue_list)
|
_add_ue_semestre_id(ue_list)
|
||||||
ue_list.sort(key=lambda u: (u["semestre_id"], u["numero"]))
|
ue_list.sort(key=lambda u: (u["semestre_id"], u["numero"]))
|
||||||
@ -627,7 +625,7 @@ du programme" (menu "Semestre") si vous avez un semestre en cours);
|
|||||||
H.append('<span class="locked">[verrouillé]</span>')
|
H.append('<span class="locked">[verrouillé]</span>')
|
||||||
if not parcours.UE_IS_MODULE:
|
if not parcours.UE_IS_MODULE:
|
||||||
H.append('<ul class="notes_matiere_list">')
|
H.append('<ul class="notes_matiere_list">')
|
||||||
Matlist = sco_edit_matiere.do_matiere_list(args={"ue_id": UE["ue_id"]})
|
Matlist = sco_edit_matiere.matiere_list(args={"ue_id": UE["ue_id"]})
|
||||||
for Mat in Matlist:
|
for Mat in Matlist:
|
||||||
if not parcours.UE_IS_MODULE:
|
if not parcours.UE_IS_MODULE:
|
||||||
H.append('<li class="notes_matiere_list">')
|
H.append('<li class="notes_matiere_list">')
|
||||||
@ -847,7 +845,7 @@ def ue_sharing_code(ue_code=None, ue_id=None, hide_ue_id=None):
|
|||||||
|
|
||||||
ue_code = str(ue_code)
|
ue_code = str(ue_code)
|
||||||
if ue_id:
|
if ue_id:
|
||||||
ue = do_ue_list(args={"ue_id": ue_id})[0]
|
ue = ue_list(args={"ue_id": ue_id})[0]
|
||||||
if not ue_code:
|
if not ue_code:
|
||||||
ue_code = ue["ue_code"]
|
ue_code = ue["ue_code"]
|
||||||
F = sco_formations.formation_list(args={"formation_id": ue["formation_id"]})[0]
|
F = sco_formations.formation_list(args={"formation_id": ue["formation_id"]})[0]
|
||||||
@ -884,7 +882,7 @@ def ue_sharing_code(ue_code=None, ue_id=None, hide_ue_id=None):
|
|||||||
for ue in ues:
|
for ue in ues:
|
||||||
H.append(
|
H.append(
|
||||||
f"""<li>{ue.acronyme} ({ue.titre}) dans <a class="stdlink"
|
f"""<li>{ue.acronyme} ({ue.titre}) dans <a class="stdlink"
|
||||||
href="{url_for("notes.ue_list", scodoc_dept=g.scodoc_dept, formation_id=ue.formation.id)}"
|
href="{url_for("notes.ue_table", scodoc_dept=g.scodoc_dept, formation_id=ue.formation.id)}"
|
||||||
>{ue.formation.acronyme} ({ue.formation.titre})</a>, version {ue.formation.version}
|
>{ue.formation.acronyme} ({ue.formation.titre})</a>, version {ue.formation.version}
|
||||||
</li>
|
</li>
|
||||||
"""
|
"""
|
||||||
@ -897,13 +895,13 @@ def do_ue_edit(args, bypass_lock=False, dont_invalidate_cache=False):
|
|||||||
"edit an UE"
|
"edit an UE"
|
||||||
# check
|
# check
|
||||||
ue_id = args["ue_id"]
|
ue_id = args["ue_id"]
|
||||||
ue = do_ue_list({"ue_id": ue_id})[0]
|
ue = ue_list({"ue_id": ue_id})[0]
|
||||||
if (not bypass_lock) and ue_is_locked(ue["ue_id"]):
|
if (not bypass_lock) and ue_is_locked(ue["ue_id"]):
|
||||||
raise ScoLockedFormError()
|
raise ScoLockedFormError()
|
||||||
# check: acronyme unique dans cette formation
|
# check: acronyme unique dans cette formation
|
||||||
if "acronyme" in args:
|
if "acronyme" in args:
|
||||||
new_acro = args["acronyme"]
|
new_acro = args["acronyme"]
|
||||||
ues = do_ue_list({"formation_id": ue["formation_id"], "acronyme": new_acro})
|
ues = ue_list({"formation_id": ue["formation_id"], "acronyme": new_acro})
|
||||||
if ues and ues[0]["ue_id"] != ue_id:
|
if ues and ues[0]["ue_id"] != ue_id:
|
||||||
raise ScoValueError('Acronyme d\'UE "%s" déjà utilisé !' % args["acronyme"])
|
raise ScoValueError('Acronyme d\'UE "%s" déjà utilisé !' % args["acronyme"])
|
||||||
|
|
||||||
@ -926,7 +924,7 @@ def edit_ue_set_code_apogee(id=None, value=None):
|
|||||||
value = value.strip("-_ \t")
|
value = value.strip("-_ \t")
|
||||||
log("edit_ue_set_code_apogee: ue_id=%s code_apogee=%s" % (ue_id, value))
|
log("edit_ue_set_code_apogee: ue_id=%s code_apogee=%s" % (ue_id, value))
|
||||||
|
|
||||||
ues = do_ue_list(args={"ue_id": ue_id})
|
ues = ue_list(args={"ue_id": ue_id})
|
||||||
if not ues:
|
if not ues:
|
||||||
return "ue invalide"
|
return "ue invalide"
|
||||||
|
|
||||||
@ -966,9 +964,9 @@ def formation_table_recap(formation_id, format="html"):
|
|||||||
raise ScoValueError("invalid formation_id")
|
raise ScoValueError("invalid formation_id")
|
||||||
F = F[0]
|
F = F[0]
|
||||||
T = []
|
T = []
|
||||||
ue_list = do_ue_list(args={"formation_id": formation_id})
|
ue_list = ue_list(args={"formation_id": formation_id})
|
||||||
for UE in ue_list:
|
for UE in ue_list:
|
||||||
Matlist = sco_edit_matiere.do_matiere_list(args={"ue_id": UE["ue_id"]})
|
Matlist = sco_edit_matiere.matiere_list(args={"ue_id": UE["ue_id"]})
|
||||||
for Mat in Matlist:
|
for Mat in Matlist:
|
||||||
Modlist = sco_edit_module.module_list(
|
Modlist = sco_edit_module.module_list(
|
||||||
args={"matiere_id": Mat["matiere_id"]}
|
args={"matiere_id": Mat["matiere_id"]}
|
||||||
|
@ -1062,7 +1062,7 @@ def evaluation_describe(evaluation_id="", edit_in_place=True):
|
|||||||
]
|
]
|
||||||
if Mod["module_type"] == scu.MODULE_MALUS:
|
if Mod["module_type"] == scu.MODULE_MALUS:
|
||||||
# Indique l'UE
|
# Indique l'UE
|
||||||
ue = sco_edit_ue.do_ue_list(args={"ue_id": Mod["ue_id"]})[0]
|
ue = sco_edit_ue.ue_list(args={"ue_id": Mod["ue_id"]})[0]
|
||||||
H.append("<p><b>UE : %(acronyme)s</b></p>" % ue)
|
H.append("<p><b>UE : %(acronyme)s</b></p>" % ue)
|
||||||
# store min/max values used by JS client-side checks:
|
# store min/max values used by JS client-side checks:
|
||||||
H.append(
|
H.append(
|
||||||
|
@ -98,7 +98,7 @@ def formation_export(formation_id, export_ids=False, export_tags=True, format=No
|
|||||||
in desired format
|
in desired format
|
||||||
"""
|
"""
|
||||||
F = formation_list(args={"formation_id": formation_id})[0]
|
F = formation_list(args={"formation_id": formation_id})[0]
|
||||||
ues = sco_edit_ue.do_ue_list({"formation_id": formation_id})
|
ues = sco_edit_ue.ue_list({"formation_id": formation_id})
|
||||||
F["ue"] = ues
|
F["ue"] = ues
|
||||||
for ue in ues:
|
for ue in ues:
|
||||||
ue_id = ue["ue_id"]
|
ue_id = ue["ue_id"]
|
||||||
@ -107,7 +107,7 @@ def formation_export(formation_id, export_ids=False, export_tags=True, format=No
|
|||||||
del ue["formation_id"]
|
del ue["formation_id"]
|
||||||
if ue["ects"] is None:
|
if ue["ects"] is None:
|
||||||
del ue["ects"]
|
del ue["ects"]
|
||||||
mats = sco_edit_matiere.do_matiere_list({"ue_id": ue_id})
|
mats = sco_edit_matiere.matiere_list({"ue_id": ue_id})
|
||||||
ue["matiere"] = mats
|
ue["matiere"] = mats
|
||||||
for mat in mats:
|
for mat in mats:
|
||||||
matiere_id = mat["matiere_id"]
|
matiere_id = mat["matiere_id"]
|
||||||
@ -366,7 +366,7 @@ def formation_create_new_version(formation_id, redirect=True):
|
|||||||
if redirect:
|
if redirect:
|
||||||
return flask.redirect(
|
return flask.redirect(
|
||||||
url_for(
|
url_for(
|
||||||
"notes.ue_list",
|
"notes.ue_table",
|
||||||
scodoc_dept=g.scodoc_dept,
|
scodoc_dept=g.scodoc_dept,
|
||||||
formation_id=new_id,
|
formation_id=new_id,
|
||||||
msg="Nouvelle version !",
|
msg="Nouvelle version !",
|
||||||
|
@ -205,9 +205,9 @@ def do_formsemestre_createwithmodules(edit=False):
|
|||||||
# on pourrait faire un simple module_list( )
|
# on pourrait faire un simple module_list( )
|
||||||
# mais si on veut l'ordre du PPN (groupe par UE et matieres) il faut:
|
# mais si on veut l'ordre du PPN (groupe par UE et matieres) il faut:
|
||||||
mods = [] # liste de dicts
|
mods = [] # liste de dicts
|
||||||
uelist = sco_edit_ue.do_ue_list({"formation_id": formation_id})
|
uelist = sco_edit_ue.ue_list({"formation_id": formation_id})
|
||||||
for ue in uelist:
|
for ue in uelist:
|
||||||
matlist = sco_edit_matiere.do_matiere_list({"ue_id": ue["ue_id"]})
|
matlist = sco_edit_matiere.matiere_list({"ue_id": ue["ue_id"]})
|
||||||
for mat in matlist:
|
for mat in matlist:
|
||||||
modsmat = sco_edit_module.module_list({"matiere_id": mat["matiere_id"]})
|
modsmat = sco_edit_module.module_list({"matiere_id": mat["matiere_id"]})
|
||||||
# XXX debug checks
|
# XXX debug checks
|
||||||
|
@ -439,7 +439,7 @@ def _list_ue_with_coef_and_validations(sem, etudid):
|
|||||||
"""
|
"""
|
||||||
cnx = ndb.GetDBConnexion()
|
cnx = ndb.GetDBConnexion()
|
||||||
formsemestre_id = sem["formsemestre_id"]
|
formsemestre_id = sem["formsemestre_id"]
|
||||||
ue_list = sco_edit_ue.do_ue_list({"formation_id": sem["formation_id"]})
|
ue_list = sco_edit_ue.ue_list({"formation_id": sem["formation_id"]})
|
||||||
for ue in ue_list:
|
for ue in ue_list:
|
||||||
# add coefficient
|
# add coefficient
|
||||||
uecoef = sco_formsemestre.formsemestre_uecoef_list(
|
uecoef = sco_formsemestre.formsemestre_uecoef_list(
|
||||||
|
@ -141,7 +141,7 @@ def formsemestre_status_menubar(sem):
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Voir la formation %(acronyme)s (v%(version)s)" % F,
|
"title": "Voir la formation %(acronyme)s (v%(version)s)" % F,
|
||||||
"endpoint": "notes.ue_list",
|
"endpoint": "notes.ue_table",
|
||||||
"args": {"formation_id": sem["formation_id"]},
|
"args": {"formation_id": sem["formation_id"]},
|
||||||
"enabled": True,
|
"enabled": True,
|
||||||
"helpmsg": "Tableau de bord du semestre",
|
"helpmsg": "Tableau de bord du semestre",
|
||||||
@ -896,7 +896,7 @@ def html_expr_diagnostic(diagnostics):
|
|||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
if diag["ue_id"] != last_id or diag["msg"] != last_msg:
|
if diag["ue_id"] != last_id or diag["msg"] != last_msg:
|
||||||
ue = sco_edit_ue.do_ue_list({"ue_id": diag["ue_id"]})[0]
|
ue = sco_edit_ue.ue_list({"ue_id": diag["ue_id"]})[0]
|
||||||
H.append(
|
H.append(
|
||||||
'<li>UE "%s": %s</li>'
|
'<li>UE "%s": %s</li>'
|
||||||
% (ue["acronyme"] or ue["titre"] or "?", diag["msg"])
|
% (ue["acronyme"] or ue["titre"] or "?", diag["msg"])
|
||||||
@ -926,7 +926,7 @@ def formsemestre_status_head(formsemestre_id=None, page_title=None):
|
|||||||
),
|
),
|
||||||
f"""<table>
|
f"""<table>
|
||||||
<tr><td class="fichetitre2">Formation: </td><td>
|
<tr><td class="fichetitre2">Formation: </td><td>
|
||||||
<a href="{url_for('notes.ue_list', scodoc_dept=g.scodoc_dept, formation_id=F['formation_id'])}"
|
<a href="{url_for('notes.ue_table', scodoc_dept=g.scodoc_dept, formation_id=F['formation_id'])}"
|
||||||
class="discretelink" title="Formation {F['acronyme']}, v{F['version']}">{F['titre']}</a>""",
|
class="discretelink" title="Formation {F['acronyme']}, v{F['version']}">{F['titre']}</a>""",
|
||||||
]
|
]
|
||||||
if sem["semestre_id"] >= 0:
|
if sem["semestre_id"] >= 0:
|
||||||
|
@ -1022,7 +1022,7 @@ def formsemestre_validate_previous_ue(formsemestre_id, etudid):
|
|||||||
]
|
]
|
||||||
|
|
||||||
# Toutes les UE de cette formation sont présentées (même celles des autres semestres)
|
# Toutes les UE de cette formation sont présentées (même celles des autres semestres)
|
||||||
ues = sco_edit_ue.do_ue_list({"formation_id": Fo["formation_id"]})
|
ues = sco_edit_ue.ue_list({"formation_id": Fo["formation_id"]})
|
||||||
ue_names = ["Choisir..."] + ["%(acronyme)s %(titre)s" % ue for ue in ues]
|
ue_names = ["Choisir..."] + ["%(acronyme)s %(titre)s" % ue for ue in ues]
|
||||||
ue_ids = [""] + [ue["ue_id"] for ue in ues]
|
ue_ids = [""] + [ue["ue_id"] for ue in ues]
|
||||||
tf = TrivialFormulator(
|
tf = TrivialFormulator(
|
||||||
@ -1234,7 +1234,7 @@ def check_formation_ues(formation_id):
|
|||||||
définition du programme: cette fonction retourne un bout de HTML
|
définition du programme: cette fonction retourne un bout de HTML
|
||||||
à afficher pour prévenir l'utilisateur, ou '' si tout est ok.
|
à afficher pour prévenir l'utilisateur, ou '' si tout est ok.
|
||||||
"""
|
"""
|
||||||
ues = sco_edit_ue.do_ue_list({"formation_id": formation_id})
|
ues = sco_edit_ue.ue_list({"formation_id": formation_id})
|
||||||
ue_multiples = {} # { ue_id : [ liste des formsemestre ] }
|
ue_multiples = {} # { ue_id : [ liste des formsemestre ] }
|
||||||
for ue in ues:
|
for ue in ues:
|
||||||
# formsemestres utilisant cette ue ?
|
# formsemestres utilisant cette ue ?
|
||||||
|
@ -154,11 +154,11 @@ def moduleimpl_withmodule_list(
|
|||||||
mi["module"] = modules[module_id]
|
mi["module"] = modules[module_id]
|
||||||
ue_id = mi["module"]["ue_id"]
|
ue_id = mi["module"]["ue_id"]
|
||||||
if not ue_id in ues:
|
if not ue_id in ues:
|
||||||
ues[ue_id] = sco_edit_ue.do_ue_list(args={"ue_id": ue_id})[0]
|
ues[ue_id] = sco_edit_ue.ue_list(args={"ue_id": ue_id})[0]
|
||||||
mi["ue"] = ues[ue_id]
|
mi["ue"] = ues[ue_id]
|
||||||
matiere_id = mi["module"]["matiere_id"]
|
matiere_id = mi["module"]["matiere_id"]
|
||||||
if not matiere_id in matieres:
|
if not matiere_id in matieres:
|
||||||
matieres[matiere_id] = sco_edit_matiere.do_matiere_list(
|
matieres[matiere_id] = sco_edit_matiere.matiere_list(
|
||||||
args={"matiere_id": matiere_id}
|
args={"matiere_id": matiere_id}
|
||||||
)[0]
|
)[0]
|
||||||
mi["matiere"] = matieres[matiere_id]
|
mi["matiere"] = matieres[matiere_id]
|
||||||
|
@ -339,7 +339,7 @@ def moduleimpl_inscriptions_stats(formsemestre_id):
|
|||||||
UECaps = get_etuds_with_capitalized_ue(formsemestre_id)
|
UECaps = get_etuds_with_capitalized_ue(formsemestre_id)
|
||||||
if UECaps:
|
if UECaps:
|
||||||
H.append('<h3>Etudiants avec UEs capitalisées:</h3><ul class="ue_inscr_list">')
|
H.append('<h3>Etudiants avec UEs capitalisées:</h3><ul class="ue_inscr_list">')
|
||||||
ues = [sco_edit_ue.do_ue_list({"ue_id": ue_id})[0] for ue_id in UECaps.keys()]
|
ues = [sco_edit_ue.ue_list({"ue_id": ue_id})[0] for ue_id in UECaps.keys()]
|
||||||
ues.sort(key=lambda u: u["numero"])
|
ues.sort(key=lambda u: u["numero"])
|
||||||
for ue in ues:
|
for ue in ues:
|
||||||
H.append(
|
H.append(
|
||||||
|
@ -92,7 +92,7 @@ def _descr_decisions_ues(nt, etudid, decisions_ue, decision_sem):
|
|||||||
and sco_codes_parcours.code_semestre_validant(decision_sem["code"])
|
and sco_codes_parcours.code_semestre_validant(decision_sem["code"])
|
||||||
)
|
)
|
||||||
):
|
):
|
||||||
ue = sco_edit_ue.do_ue_list(args={"ue_id": ue_id})[0]
|
ue = sco_edit_ue.ue_list(args={"ue_id": ue_id})[0]
|
||||||
uelist.append(ue)
|
uelist.append(ue)
|
||||||
except:
|
except:
|
||||||
log("descr_decisions_ues: ue_id=%s decisions_ue=%s" % (ue_id, decisions_ue))
|
log("descr_decisions_ues: ue_id=%s decisions_ue=%s" % (ue_id, decisions_ue))
|
||||||
|
@ -174,9 +174,7 @@ def external_ue_inscrit_et_note(moduleimpl_id, formsemestre_id, notes_etuds):
|
|||||||
|
|
||||||
def get_existing_external_ue(formation_id):
|
def get_existing_external_ue(formation_id):
|
||||||
"la liste de toutes les UE externes définies dans cette formation"
|
"la liste de toutes les UE externes définies dans cette formation"
|
||||||
return sco_edit_ue.do_ue_list(
|
return sco_edit_ue.ue_list(args={"formation_id": formation_id, "is_external": True})
|
||||||
args={"formation_id": formation_id, "is_external": True}
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def get_external_moduleimpl_id(formsemestre_id, ue_id):
|
def get_external_moduleimpl_id(formsemestre_id, ue_id):
|
||||||
|
@ -160,7 +160,7 @@ def sco_publish(route, function, permission, methods=["GET"]):
|
|||||||
# <p class="help">Il faut d'abord supprimer le semestre. Mais il est peut être préférable de
|
# <p class="help">Il faut d'abord supprimer le semestre. Mais il est peut être préférable de
|
||||||
# laisser ce programme intact et d'en créer une nouvelle version pour la modifier.
|
# laisser ce programme intact et d'en créer une nouvelle version pour la modifier.
|
||||||
# </p>
|
# </p>
|
||||||
# <a href="url_for('notes.ue_list', scodoc-dept=g.scodoc_dept, formation_id='XXX')">reprendre</a>
|
# <a href="url_for('notes.ue_table', scodoc-dept=g.scodoc_dept, formation_id='XXX')">reprendre</a>
|
||||||
# """
|
# """
|
||||||
# raise ScoGenError(err_page)
|
# raise ScoGenError(err_page)
|
||||||
# # raise ScoGenError("une erreur banale")
|
# # raise ScoGenError("une erreur banale")
|
||||||
@ -334,7 +334,7 @@ sco_publish(
|
|||||||
Permission.ScoChangeFormation,
|
Permission.ScoChangeFormation,
|
||||||
methods=["GET", "POST"],
|
methods=["GET", "POST"],
|
||||||
)
|
)
|
||||||
sco_publish("/ue_list", sco_edit_ue.ue_list, Permission.ScoView)
|
sco_publish("/ue_list", sco_edit_ue.ue_table, Permission.ScoView)
|
||||||
sco_publish("/ue_sharing_code", sco_edit_ue.ue_sharing_code, Permission.ScoView)
|
sco_publish("/ue_sharing_code", sco_edit_ue.ue_sharing_code, Permission.ScoView)
|
||||||
sco_publish(
|
sco_publish(
|
||||||
"/edit_ue_set_code_apogee",
|
"/edit_ue_set_code_apogee",
|
||||||
@ -548,8 +548,8 @@ sco_publish(
|
|||||||
)
|
)
|
||||||
|
|
||||||
sco_publish(
|
sco_publish(
|
||||||
"/do_ue_list",
|
"/ue_list",
|
||||||
sco_edit_ue.do_ue_list,
|
sco_edit_ue.ue_list,
|
||||||
Permission.ScoView,
|
Permission.ScoView,
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -1142,7 +1142,7 @@ def edit_ue_expr(formsemestre_id, ue_id):
|
|||||||
raise AccessDenied("vous n'avez pas le droit d'effectuer cette opération")
|
raise AccessDenied("vous n'avez pas le droit d'effectuer cette opération")
|
||||||
cnx = ndb.GetDBConnexion()
|
cnx = ndb.GetDBConnexion()
|
||||||
#
|
#
|
||||||
ue = sco_edit_ue.do_ue_list({"ue_id": ue_id})[0]
|
ue = sco_edit_ue.ue_list({"ue_id": ue_id})[0]
|
||||||
H = [
|
H = [
|
||||||
html_sco_header.html_sem_header(
|
html_sco_header.html_sem_header(
|
||||||
"Modification règle de calcul de l'UE %s (%s)"
|
"Modification règle de calcul de l'UE %s (%s)"
|
||||||
@ -2431,7 +2431,7 @@ def check_sem_integrity(formsemestre_id, fix=False):
|
|||||||
for modimpl in modimpls:
|
for modimpl in modimpls:
|
||||||
mod = sco_edit_module.module_list({"module_id": modimpl["module_id"]})[0]
|
mod = sco_edit_module.module_list({"module_id": modimpl["module_id"]})[0]
|
||||||
formations_set.add(mod["formation_id"])
|
formations_set.add(mod["formation_id"])
|
||||||
ue = sco_edit_ue.do_ue_list({"ue_id": mod["ue_id"]})[0]
|
ue = sco_edit_ue.ue_list({"ue_id": mod["ue_id"]})[0]
|
||||||
formations_set.add(ue["formation_id"])
|
formations_set.add(ue["formation_id"])
|
||||||
if ue["formation_id"] != mod["formation_id"]:
|
if ue["formation_id"] != mod["formation_id"]:
|
||||||
modimpl["mod"] = mod
|
modimpl["mod"] = mod
|
||||||
@ -2490,10 +2490,10 @@ def check_sem_integrity(formsemestre_id, fix=False):
|
|||||||
def check_form_integrity(formation_id, fix=False):
|
def check_form_integrity(formation_id, fix=False):
|
||||||
"debug"
|
"debug"
|
||||||
log("check_form_integrity: formation_id=%s fix=%s" % (formation_id, fix))
|
log("check_form_integrity: formation_id=%s fix=%s" % (formation_id, fix))
|
||||||
ues = sco_edit_ue.do_ue_list(args={"formation_id": formation_id})
|
ues = sco_edit_ue.ue_list(args={"formation_id": formation_id})
|
||||||
bad = []
|
bad = []
|
||||||
for ue in ues:
|
for ue in ues:
|
||||||
mats = sco_edit_matiere.do_matiere_list(args={"ue_id": ue["ue_id"]})
|
mats = sco_edit_matiere.matiere_list(args={"ue_id": ue["ue_id"]})
|
||||||
for mat in mats:
|
for mat in mats:
|
||||||
mods = sco_edit_module.module_list({"matiere_id": mat["matiere_id"]})
|
mods = sco_edit_module.module_list({"matiere_id": mat["matiere_id"]})
|
||||||
for mod in mods:
|
for mod in mods:
|
||||||
|
@ -170,7 +170,7 @@ class ScoFake(object):
|
|||||||
if numero is None:
|
if numero is None:
|
||||||
numero = sco_edit_ue.next_ue_numero(formation_id, 0)
|
numero = sco_edit_ue.next_ue_numero(formation_id, 0)
|
||||||
oid = sco_edit_ue.do_ue_create(locals())
|
oid = sco_edit_ue.do_ue_create(locals())
|
||||||
oids = sco_edit_ue.do_ue_list(args={"ue_id": oid})
|
oids = sco_edit_ue.ue_list(args={"ue_id": oid})
|
||||||
if not oids:
|
if not oids:
|
||||||
raise ScoValueError("ue not created !")
|
raise ScoValueError("ue not created !")
|
||||||
return oids[0]
|
return oids[0]
|
||||||
@ -178,7 +178,7 @@ class ScoFake(object):
|
|||||||
@logging_meth
|
@logging_meth
|
||||||
def create_matiere(self, ue_id=None, titre=None, numero=None):
|
def create_matiere(self, ue_id=None, titre=None, numero=None):
|
||||||
oid = sco_edit_matiere.do_matiere_create(locals())
|
oid = sco_edit_matiere.do_matiere_create(locals())
|
||||||
oids = sco_edit_matiere.do_matiere_list(args={"matiere_id": oid})
|
oids = sco_edit_matiere.matiere_list(args={"matiere_id": oid})
|
||||||
if not oids:
|
if not oids:
|
||||||
raise ScoValueError("matiere not created !")
|
raise ScoValueError("matiere not created !")
|
||||||
return oids[0]
|
return oids[0]
|
||||||
|
@ -35,9 +35,9 @@
|
|||||||
# - do_formsemestre_delete
|
# - do_formsemestre_delete
|
||||||
# - module_list
|
# - module_list
|
||||||
# - do_module_delete
|
# - do_module_delete
|
||||||
# - do_matiere_list
|
# - matiere_list
|
||||||
# - do_matiere_delete
|
# - do_matiere_delete
|
||||||
# - do_ue_list
|
# - ue_list
|
||||||
# - do_ue_delete
|
# - do_ue_delete
|
||||||
# - do_formation_delete
|
# - do_formation_delete
|
||||||
|
|
||||||
@ -303,16 +303,16 @@ def test_formations(test_client):
|
|||||||
|
|
||||||
assert len(lim_sem2) == 0 # deuxieme vérification si le module s'est bien sup
|
assert len(lim_sem2) == 0 # deuxieme vérification si le module s'est bien sup
|
||||||
|
|
||||||
li_mat = sco_edit_matiere.do_matiere_list()
|
li_mat = sco_edit_matiere.matiere_list()
|
||||||
assert len(li_mat) == 4
|
assert len(li_mat) == 4
|
||||||
sco_edit_matiere.do_matiere_delete(oid=matt["matiere_id"]) # on supprime la matiere
|
sco_edit_matiere.do_matiere_delete(oid=matt["matiere_id"]) # on supprime la matiere
|
||||||
li_mat2 = sco_edit_matiere.do_matiere_list()
|
li_mat2 = sco_edit_matiere.matiere_list()
|
||||||
assert len(li_mat2) == 3 # verification de la suppression de la matiere
|
assert len(li_mat2) == 3 # verification de la suppression de la matiere
|
||||||
|
|
||||||
li_ue = sco_edit_ue.do_ue_list()
|
li_ue = sco_edit_ue.ue_list()
|
||||||
assert len(li_ue) == 4
|
assert len(li_ue) == 4
|
||||||
sco_edit_ue.ue_delete(ue_id=uet["ue_id"], dialog_confirmed=True)
|
sco_edit_ue.ue_delete(ue_id=uet["ue_id"], dialog_confirmed=True)
|
||||||
li_ue2 = sco_edit_ue.do_ue_list()
|
li_ue2 = sco_edit_ue.ue_list()
|
||||||
assert len(li_ue2) == 3 # verification de la suppression de l'UE
|
assert len(li_ue2) == 3 # verification de la suppression de l'UE
|
||||||
|
|
||||||
# --- Suppression d'une formation
|
# --- Suppression d'une formation
|
||||||
|
Loading…
Reference in New Issue
Block a user