rename some old methods

This commit is contained in:
Emmanuel Viennet 2021-10-16 19:20:36 +02:00
parent 2ca91fc4e9
commit 256e89605b
22 changed files with 94 additions and 82 deletions

View File

@ -317,6 +317,8 @@ def set_sco_dept(scodoc_dept: str):
g.scodoc_dept_id = dept.id # l'id g.scodoc_dept_id = dept.id # l'id
if not hasattr(g, "db_conn"): if not hasattr(g, "db_conn"):
ndb.open_db_connection() ndb.open_db_connection()
if not hasattr(g, "stored_get_formsemestre"):
g.stored_get_formsemestre = {}
def user_db_init(): def user_db_init():

View File

@ -105,9 +105,7 @@ def get_sem_ues_modimpls(formsemestre_id, modimpls=None):
modimpls = sco_moduleimpl.moduleimpl_list(formsemestre_id=formsemestre_id) modimpls = sco_moduleimpl.moduleimpl_list(formsemestre_id=formsemestre_id)
uedict = {} uedict = {}
for modimpl in modimpls: for modimpl in modimpls:
mod = sco_edit_module.do_module_list(args={"module_id": modimpl["module_id"]})[ mod = sco_edit_module.module_list(args={"module_id": modimpl["module_id"]})[0]
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.do_ue_list(args={"ue_id": mod["ue_id"]})[0]
@ -212,16 +210,19 @@ class NotesTable(object):
valid_evals, valid_evals,
mods_att, mods_att,
self.expr_diagnostics, self.expr_diagnostics,
) = sco_compute_moy.compute_modimpls_moyennes(self, formsemestre_id) ) = sco_compute_moy.formsemestre_compute_modimpls_moyennes(
self, formsemestre_id
)
self._mods_att = mods_att # liste des modules avec des notes en attente self._mods_att = mods_att # liste des modules avec des notes en attente
self._matmoys = {} # moyennes par matieres self._matmoys = {} # moyennes par matieres
self._valid_evals = {} # { evaluation_id : eval } self._valid_evals = {} # { evaluation_id : eval }
for e in valid_evals: for e in valid_evals:
self._valid_evals[e["evaluation_id"]] = e # Liste des modules et UE self._valid_evals[e["evaluation_id"]] = e # Liste des modules et UE
uedict = {} # public member: { ue_id : ue } uedict = {} # public member: { ue_id : ue }
self.uedict = uedict self.uedict = uedict # les ues qui ont un modimpl dans ce semestre
for modimpl in self._modimpls: for modimpl in self._modimpls:
mod = modimpl["module"] # has been added here by compute_modimpls_moyennes # module has been added by formsemestre_compute_modimpls_moyennes
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.do_ue_list(args={"ue_id": mod["ue_id"]})[0]
uedict[ue["ue_id"]] = ue uedict[ue["ue_id"]] = ue

View File

@ -27,10 +27,10 @@
"""Calcul des moyennes de module """Calcul des moyennes de module
""" """
import traceback
import pprint import pprint
import traceback
from flask import url_for, g
import app.scodoc.sco_utils as scu import app.scodoc.sco_utils as scu
import app.scodoc.notesdb as ndb import app.scodoc.notesdb as ndb
from app.scodoc.sco_utils import ( from app.scodoc.sco_utils import (
@ -40,7 +40,7 @@ from app.scodoc.sco_utils import (
EVALUATION_RATTRAPAGE, EVALUATION_RATTRAPAGE,
EVALUATION_SESSION2, EVALUATION_SESSION2,
) )
from app.scodoc.sco_exceptions import ScoException from app.scodoc.sco_exceptions import ScoValueError
from app import log from app import log
from app.scodoc import sco_abs from app.scodoc import sco_abs
from app.scodoc import sco_edit_module from app.scodoc import sco_edit_module
@ -65,7 +65,8 @@ def moduleimpl_has_expression(mod):
def formsemestre_expressions_use_abscounts(formsemestre_id): def formsemestre_expressions_use_abscounts(formsemestre_id):
"""True si les notes de ce semestre dépendent des compteurs d'absences. """True si les notes de ce semestre dépendent des compteurs d'absences.
Cela n'est normalement pas le cas, sauf si des formules utilisateur utilisent ces compteurs. Cela n'est normalement pas le cas, sauf si des formules utilisateur
utilisent ces compteurs.
""" """
# check presence of 'nbabs' in expressions # check presence of 'nbabs' in expressions
ab = "nb_abs" # chaine recherchée ab = "nb_abs" # chaine recherchée
@ -128,7 +129,7 @@ def compute_user_formula(
coefs, coefs,
coefs_mask, coefs_mask,
formula, formula,
diag_info={}, # infos supplementaires a placer ds messages d'erreur diag_info=None, # infos supplementaires a placer ds messages d'erreur
use_abs=True, use_abs=True,
): ):
"""Calcul moyenne a partir des notes et coefs, en utilisant la formule utilisateur (une chaine). """Calcul moyenne a partir des notes et coefs, en utilisant la formule utilisateur (une chaine).
@ -164,9 +165,14 @@ def compute_user_formula(
if (user_moy > 20) or (user_moy < 0): if (user_moy > 20) or (user_moy < 0):
etud = sco_etud.get_etud_info(etudid=etudid, filled=True)[0] etud = sco_etud.get_etud_info(etudid=etudid, filled=True)[0]
raise ScoException( raise ScoValueError(
"""valeur moyenne %s hors limite pour <a href="formsemestre_bulletinetud?formsemestre_id=%s&etudid=%s">%s</a>""" f"""
% (user_moy, sem["formsemestre_id"], etudid, etud["nomprenom"]) Valeur moyenne {user_moy} hors limite pour
<a href="{url_for('notes.formsemestre_bulletinetud',
scodoc_dept=g.scodoc_dept,
formsemestre_id=sem["formsemestre_id"],
etudid=etudid
)}">{etud["nomprenom"]}</a>"""
) )
except: except:
log( log(
@ -183,7 +189,7 @@ def compute_user_formula(
return user_moy return user_moy
def do_moduleimpl_moyennes(nt, mod): def compute_moduleimpl_moyennes(nt, modimpl):
"""Retourne dict { etudid : note_moyenne } pour tous les etuds inscrits """Retourne dict { etudid : note_moyenne } pour tous les etuds inscrits
au moduleimpl mod, la liste des evaluations "valides" (toutes notes entrées au moduleimpl mod, la liste des evaluations "valides" (toutes notes entrées
ou en attente), et att (vrai s'il y a des notes en attente dans ce module). ou en attente), et att (vrai s'il y a des notes en attente dans ce module).
@ -193,12 +199,12 @@ def do_moduleimpl_moyennes(nt, mod):
S'il manque des notes et que le coef n'est pas nul, S'il manque des notes et que le coef n'est pas nul,
la moyenne n'est pas calculée: NA la moyenne n'est pas calculée: NA
Ne prend en compte que les evaluations toutes les notes sont entrées. Ne prend en compte que les evaluations toutes les notes sont entrées.
Le résultat est une note sur 20. Le résultat note_moyenne est une note sur 20.
""" """
diag_info = {} # message d'erreur formule diag_info = {} # message d'erreur formule
moduleimpl_id = mod["moduleimpl_id"] moduleimpl_id = modimpl["moduleimpl_id"]
is_malus = mod["module"]["module_type"] == scu.MODULE_MALUS is_malus = modimpl["module"]["module_type"] == scu.MODULE_MALUS
sem = sco_formsemestre.get_formsemestre(mod["formsemestre_id"]) sem = sco_formsemestre.get_formsemestre(modimpl["formsemestre_id"])
etudids = sco_moduleimpl.moduleimpl_listeetuds( etudids = sco_moduleimpl.moduleimpl_listeetuds(
moduleimpl_id moduleimpl_id
) # tous, y compris demissions ) # tous, y compris demissions
@ -207,7 +213,7 @@ def do_moduleimpl_moyennes(nt, mod):
[ [
x["etudid"] x["etudid"]
for x in sco_formsemestre_inscriptions.do_formsemestre_inscription_listinscrits( for x in sco_formsemestre_inscriptions.do_formsemestre_inscription_listinscrits(
mod["formsemestre_id"] modimpl["formsemestre_id"]
) )
] ]
) )
@ -218,7 +224,7 @@ def do_moduleimpl_moyennes(nt, mod):
key=lambda x: (x["numero"], x["jour"], x["heure_debut"]) key=lambda x: (x["numero"], x["jour"], x["heure_debut"])
) # la plus ancienne en tête ) # la plus ancienne en tête
user_expr = moduleimpl_has_expression(mod) user_expr = moduleimpl_has_expression(modimpl)
attente = False attente = False
# recupere les notes de toutes les evaluations # recupere les notes de toutes les evaluations
eval_rattr = None eval_rattr = None
@ -268,7 +274,7 @@ def do_moduleimpl_moyennes(nt, mod):
] ]
# #
R = {} R = {}
formula = scu.unescape_html(mod["computation_expr"]) formula = scu.unescape_html(modimpl["computation_expr"])
formula_use_abs = "abs" in formula formula_use_abs = "abs" in formula
for etudid in insmod_set: # inscrits au semestre et au module for etudid in insmod_set: # inscrits au semestre et au module
@ -365,7 +371,7 @@ def do_moduleimpl_moyennes(nt, mod):
return R, valid_evals, attente, diag_info return R, valid_evals, attente, diag_info
def compute_modimpls_moyennes(nt, formsemestre_id): def formsemestre_compute_modimpls_moyennes(nt, formsemestre_id):
"""retourne dict { moduleimpl_id : { etudid, note_moyenne_dans_ce_module } }, """retourne dict { moduleimpl_id : { etudid, note_moyenne_dans_ce_module } },
la liste des moduleimpls, la liste des evaluations valides, la liste des moduleimpls, la liste des evaluations valides,
liste des moduleimpls avec notes en attente. liste des moduleimpls avec notes en attente.
@ -383,15 +389,16 @@ def compute_modimpls_moyennes(nt, formsemestre_id):
mods_att = [] mods_att = []
expr_diags = [] expr_diags = []
for modimpl in modimpls: for modimpl in modimpls:
mod = sco_edit_module.do_module_list(args={"module_id": modimpl["module_id"]})[ mod = sco_edit_module.module_list(args={"module_id": modimpl["module_id"]})[0]
0
]
modimpl["module"] = mod # add module dict to moduleimpl (used by nt) modimpl["module"] = mod # add module dict to moduleimpl (used by nt)
moduleimpl_id = modimpl["moduleimpl_id"] moduleimpl_id = modimpl["moduleimpl_id"]
assert moduleimpl_id not in D assert moduleimpl_id not in D
D[moduleimpl_id], valid_evals_mod, attente, expr_diag = do_moduleimpl_moyennes( (
nt, modimpl D[moduleimpl_id],
) valid_evals_mod,
attente,
expr_diag,
) = compute_moduleimpl_moyennes(nt, modimpl)
valid_evals_per_mod[moduleimpl_id] = valid_evals_mod valid_evals_per_mod[moduleimpl_id] = valid_evals_mod
valid_evals += valid_evals_mod valid_evals += valid_evals_mod
if attente: if attente:

View File

@ -313,13 +313,13 @@ def invalidate_sems_in_formation(formation_id):
def module_move(module_id, after=0, redirect=1): def module_move(module_id, after=0, redirect=1):
"""Move before/after previous one (decrement/increment numero)""" """Move before/after previous one (decrement/increment numero)"""
module = sco_edit_module.do_module_list({"module_id": module_id})[0] module = sco_edit_module.module_list({"module_id": module_id})[0]
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 = module["formation_id"] formation_id = module["formation_id"]
others = sco_edit_module.do_module_list({"matiere_id": module["matiere_id"]}) others = sco_edit_module.module_list({"matiere_id": module["matiere_id"]})
# log('others=%s' % others) # log('others=%s' % others)
if len(others) > 1: if len(others) > 1:
idx = [p["module_id"] for p in others].index(module_id) idx = [p["module_id"] for p in others].index(module_id)

View File

@ -174,7 +174,7 @@ def do_matiere_delete(oid):
raise ScoLockedFormError() raise ScoLockedFormError()
log("do_matiere_delete: matiere_id=%s" % oid) log("do_matiere_delete: matiere_id=%s" % oid)
# delete all modules in this matiere # delete all modules in this matiere
mods = sco_edit_module.do_module_list({"matiere_id": oid}) mods = sco_edit_module.module_list({"matiere_id": oid})
for mod in mods: for mod in mods:
sco_edit_module.do_module_delete(mod["module_id"]) sco_edit_module.do_module_delete(mod["module_id"])
_matiereEditor.delete(cnx, oid) _matiereEditor.delete(cnx, oid)

View File

@ -94,7 +94,7 @@ _moduleEditor = ndb.EditableTable(
) )
def do_module_list(*args, **kw): def module_list(*args, **kw):
"list modules" "list modules"
cnx = ndb.GetDBConnexion() cnx = ndb.GetDBConnexion()
return _moduleEditor.list(cnx, *args, **kw) return _moduleEditor.list(cnx, *args, **kw)
@ -138,7 +138,7 @@ def module_create(matiere_id=None):
_MODULE_HELP, _MODULE_HELP,
] ]
# cherche le numero adequat (pour placer le module en fin de liste) # cherche le numero adequat (pour placer le module en fin de liste)
Mods = do_module_list(args={"matiere_id": matiere_id}) Mods = module_list(args={"matiere_id": matiere_id})
if Mods: if Mods:
default_num = max([m["numero"] for m in Mods]) + 10 default_num = max([m["numero"] for m in Mods]) + 10
else: else:
@ -252,7 +252,7 @@ def do_module_delete(oid):
"delete module" "delete module"
from app.scodoc import sco_formations from app.scodoc import sco_formations
mod = do_module_list({"module_id": oid})[0] mod = module_list({"module_id": oid})[0]
if module_is_locked(mod["module_id"]): if module_is_locked(mod["module_id"]):
raise ScoLockedFormError() raise ScoLockedFormError()
@ -285,7 +285,7 @@ def module_delete(module_id=None):
"""Delete a module""" """Delete a module"""
if not module_id: if not module_id:
raise ScoValueError("invalid module !") raise ScoValueError("invalid module !")
Mods = do_module_list(args={"module_id": module_id}) Mods = module_list(args={"module_id": module_id})
if not Mods: if not Mods:
raise ScoValueError("Module inexistant !") raise ScoValueError("Module inexistant !")
Mod = Mods[0] Mod = Mods[0]
@ -317,7 +317,7 @@ def do_module_edit(val):
from app.scodoc import sco_edit_formation from app.scodoc import sco_edit_formation
# check # check
mod = do_module_list({"module_id": val["module_id"]})[0] mod = module_list({"module_id": val["module_id"]})[0]
if module_is_locked(mod["module_id"]): if module_is_locked(mod["module_id"]):
# formation verrouillée: empeche de modifier certains champs: # formation verrouillée: empeche de modifier certains champs:
protected_fields = ("coefficient", "ue_id", "matiere_id", "semestre_id") protected_fields = ("coefficient", "ue_id", "matiere_id", "semestre_id")
@ -332,7 +332,7 @@ def do_module_edit(val):
def check_module_code_unicity(code, field, formation_id, module_id=None): def check_module_code_unicity(code, field, formation_id, module_id=None):
"true si code module unique dans la formation" "true si code module unique dans la formation"
Mods = do_module_list(args={"code": code, "formation_id": formation_id}) Mods = module_list(args={"code": code, "formation_id": formation_id})
if module_id: # edition: supprime le module en cours if module_id: # edition: supprime le module en cours
Mods = [m for m in Mods if m["module_id"] != module_id] Mods = [m for m in Mods if m["module_id"] != module_id]
@ -346,7 +346,7 @@ def module_edit(module_id=None):
if not module_id: if not module_id:
raise ScoValueError("invalid module !") raise ScoValueError("invalid module !")
Mod = do_module_list(args={"module_id": module_id}) Mod = module_list(args={"module_id": module_id})
if not Mod: if not Mod:
raise ScoValueError("invalid module !") raise ScoValueError("invalid module !")
Mod = Mod[0] Mod = Mod[0]
@ -521,7 +521,7 @@ def edit_module_set_code_apogee(id=None, value=None):
value = value.strip("-_ \t") value = value.strip("-_ \t")
log("edit_module_set_code_apogee: module_id=%s code_apogee=%s" % (module_id, value)) log("edit_module_set_code_apogee: module_id=%s code_apogee=%s" % (module_id, value))
modules = do_module_list(args={"module_id": module_id}) modules = module_list(args={"module_id": module_id})
if not modules: if not modules:
return "module invalide" # should not occur return "module invalide" # should not occur
@ -531,7 +531,7 @@ def edit_module_set_code_apogee(id=None, value=None):
return value return value
def module_list(formation_id): def module_table(formation_id):
"""Liste des modules de la formation """Liste des modules de la formation
(XXX inutile ou a revoir) (XXX inutile ou a revoir)
""" """
@ -548,7 +548,7 @@ def module_list(formation_id):
] ]
editable = current_user.has_permission(Permission.ScoChangeFormation) editable = current_user.has_permission(Permission.ScoChangeFormation)
for Mod in do_module_list(args={"formation_id": formation_id}): for Mod in module_list(args={"formation_id": formation_id}):
H.append('<li class="notes_module_list">%s' % Mod) H.append('<li class="notes_module_list">%s' % Mod)
if editable: if editable:
H.append('<a href="module_edit?module_id=%(module_id)s">modifier</a>' % Mod) H.append('<a href="module_edit?module_id=%(module_id)s">modifier</a>' % Mod)
@ -595,7 +595,7 @@ def formation_add_malus_modules(formation_id, titre=None, redirect=True):
nb_mod_malus = len( nb_mod_malus = len(
[ [
mod mod
for mod in do_module_list(args={"ue_id": ue["ue_id"]}) for mod in module_list(args={"ue_id": ue["ue_id"]})
if mod["module_type"] == scu.MODULE_MALUS if mod["module_type"] == scu.MODULE_MALUS
] ]
) )

View File

@ -382,7 +382,7 @@ def _add_ue_semestre_id(ue_list):
qui les place à la fin de la liste. qui les place à la fin de la liste.
""" """
for ue in ue_list: for ue in ue_list:
Modlist = sco_edit_module.do_module_list(args={"ue_id": ue["ue_id"]}) Modlist = sco_edit_module.module_list(args={"ue_id": ue["ue_id"]})
if Modlist: if Modlist:
ue["semestre_id"] = Modlist[0]["semestre_id"] ue["semestre_id"] = Modlist[0]["semestre_id"]
else: else:
@ -648,7 +648,7 @@ du programme" (menu "Semestre") si vous avez un semestre en cours);
H.append("</a>") H.append("</a>")
H.append('<ul class="notes_module_list">') H.append('<ul class="notes_module_list">')
Modlist = sco_edit_module.do_module_list( Modlist = sco_edit_module.module_list(
args={"matiere_id": Mat["matiere_id"]} args={"matiere_id": Mat["matiere_id"]}
) )
im = 0 im = 0
@ -970,7 +970,7 @@ def formation_table_recap(formation_id, format="html"):
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.do_matiere_list(args={"ue_id": UE["ue_id"]})
for Mat in Matlist: for Mat in Matlist:
Modlist = sco_edit_module.do_module_list( Modlist = sco_edit_module.module_list(
args={"matiere_id": Mat["matiere_id"]} args={"matiere_id": Mat["matiere_id"]}
) )
for Mod in Modlist: for Mod in Modlist:
@ -1049,5 +1049,5 @@ def ue_list_semestre_ids(ue):
Mais cela n'a pas toujours été le cas dans les programmes pédagogiques officiels, Mais cela n'a pas toujours été le cas dans les programmes pédagogiques officiels,
aussi ScoDoc laisse le choix. aussi ScoDoc laisse le choix.
""" """
Modlist = sco_edit_module.do_module_list(args={"ue_id": ue["ue_id"]}) Modlist = sco_edit_module.module_list(args={"ue_id": ue["ue_id"]})
return sorted(list(set([mod["semestre_id"] for mod in Modlist]))) return sorted(list(set([mod["semestre_id"] for mod in Modlist])))

View File

@ -302,7 +302,7 @@ def do_evaluation_create(
# news # news
M = sco_moduleimpl.moduleimpl_list(moduleimpl_id=moduleimpl_id)[0] M = sco_moduleimpl.moduleimpl_list(moduleimpl_id=moduleimpl_id)[0]
mod = sco_edit_module.do_module_list(args={"module_id": M["module_id"]})[0] mod = sco_edit_module.module_list(args={"module_id": M["module_id"]})[0]
mod["moduleimpl_id"] = M["moduleimpl_id"] mod["moduleimpl_id"] = M["moduleimpl_id"]
mod["url"] = "Notes/moduleimpl_status?moduleimpl_id=%(moduleimpl_id)s" % mod mod["url"] = "Notes/moduleimpl_status?moduleimpl_id=%(moduleimpl_id)s" % mod
sco_news.add( sco_news.add(
@ -360,7 +360,7 @@ def do_evaluation_delete(evaluation_id):
M = sco_moduleimpl.moduleimpl_list(moduleimpl_id=moduleimpl_id)[0] M = sco_moduleimpl.moduleimpl_list(moduleimpl_id=moduleimpl_id)[0]
sco_cache.invalidate_formsemestre(formsemestre_id=M["formsemestre_id"]) sco_cache.invalidate_formsemestre(formsemestre_id=M["formsemestre_id"])
# news # news
mod = sco_edit_module.do_module_list(args={"module_id": M["module_id"]})[0] mod = sco_edit_module.module_list(args={"module_id": M["module_id"]})[0]
mod["moduleimpl_id"] = M["moduleimpl_id"] mod["moduleimpl_id"] = M["moduleimpl_id"]
mod["url"] = ( mod["url"] = (
scu.NotesURL() + "/moduleimpl_status?moduleimpl_id=%(moduleimpl_id)s" % mod scu.NotesURL() + "/moduleimpl_status?moduleimpl_id=%(moduleimpl_id)s" % mod
@ -410,7 +410,7 @@ def do_evaluation_etat(evaluation_id, partition_id=None, select_first_partition=
# ---- Liste des groupes complets et incomplets # ---- Liste des groupes complets et incomplets
E = do_evaluation_list(args={"evaluation_id": evaluation_id})[0] E = do_evaluation_list(args={"evaluation_id": evaluation_id})[0]
M = sco_moduleimpl.moduleimpl_list(moduleimpl_id=E["moduleimpl_id"])[0] M = sco_moduleimpl.moduleimpl_list(moduleimpl_id=E["moduleimpl_id"])[0]
Mod = sco_edit_module.do_module_list(args={"module_id": M["module_id"]})[0] Mod = sco_edit_module.module_list(args={"module_id": M["module_id"]})[0]
is_malus = Mod["module_type"] == scu.MODULE_MALUS # True si module de malus is_malus = Mod["module_type"] == scu.MODULE_MALUS # True si module de malus
formsemestre_id = M["formsemestre_id"] formsemestre_id = M["formsemestre_id"]
# Si partition_id is None, prend 'all' ou bien la premiere: # Si partition_id is None, prend 'all' ou bien la premiere:
@ -852,7 +852,7 @@ def formsemestre_evaluations_delai_correction(formsemestre_id, format="html"):
T = [] T = []
for e in evals: for e in evals:
M = sco_moduleimpl.moduleimpl_list(moduleimpl_id=e["moduleimpl_id"])[0] M = sco_moduleimpl.moduleimpl_list(moduleimpl_id=e["moduleimpl_id"])[0]
Mod = sco_edit_module.do_module_list(args={"module_id": M["module_id"]})[0] Mod = sco_edit_module.module_list(args={"module_id": M["module_id"]})[0]
if (e["evaluation_type"] != scu.EVALUATION_NORMALE) or ( if (e["evaluation_type"] != scu.EVALUATION_NORMALE) or (
Mod["module_type"] == scu.MODULE_MALUS Mod["module_type"] == scu.MODULE_MALUS
): ):
@ -1033,7 +1033,7 @@ def evaluation_describe(evaluation_id="", edit_in_place=True):
E = do_evaluation_list({"evaluation_id": evaluation_id})[0] E = do_evaluation_list({"evaluation_id": evaluation_id})[0]
moduleimpl_id = E["moduleimpl_id"] moduleimpl_id = E["moduleimpl_id"]
M = sco_moduleimpl.moduleimpl_list(moduleimpl_id=moduleimpl_id)[0] M = sco_moduleimpl.moduleimpl_list(moduleimpl_id=moduleimpl_id)[0]
Mod = sco_edit_module.do_module_list(args={"module_id": M["module_id"]})[0] Mod = sco_edit_module.module_list(args={"module_id": M["module_id"]})[0]
formsemestre_id = M["formsemestre_id"] formsemestre_id = M["formsemestre_id"]
u = sco_users.user_info(M["responsable_id"]) u = sco_users.user_info(M["responsable_id"])
resp = u["prenomnom"] resp = u["prenomnom"]
@ -1171,7 +1171,7 @@ def evaluation_create_form(
else: else:
min_note_max_str = "0" min_note_max_str = "0"
# #
Mod = sco_edit_module.do_module_list(args={"module_id": M["module_id"]})[0] Mod = sco_edit_module.module_list(args={"module_id": M["module_id"]})[0]
# #
help = """<div class="help"><p class="help"> help = """<div class="help"><p class="help">
Le coefficient d'une évaluation n'est utilisé que pour pondérer les évaluations au sein d'un module. Le coefficient d'une évaluation n'est utilisé que pour pondérer les évaluations au sein d'un module.

View File

@ -114,7 +114,7 @@ def formation_export(formation_id, export_ids=False, export_tags=True, format=No
if not export_ids: if not export_ids:
del mat["matiere_id"] del mat["matiere_id"]
del mat["ue_id"] del mat["ue_id"]
mods = sco_edit_module.do_module_list({"matiere_id": matiere_id}) mods = sco_edit_module.module_list({"matiere_id": matiere_id})
mat["module"] = mods mat["module"] = mods
for mod in mods: for mod in mods:
if export_tags: if export_tags:
@ -130,7 +130,9 @@ def formation_export(formation_id, export_ids=False, export_tags=True, format=No
if mod["ects"] is None: if mod["ects"] is None:
del mod["ects"] del mod["ects"]
return scu.sendResult(F, name="formation", format=format, force_outer_xml_tag=False, attached=True) return scu.sendResult(
F, name="formation", format=format, force_outer_xml_tag=False, attached=True
)
def formation_import_xml(doc: str, import_tags=True): def formation_import_xml(doc: str, import_tags=True):

View File

@ -209,7 +209,7 @@ def do_formsemestre_createwithmodules(edit=False):
for ue in uelist: for ue in uelist:
matlist = sco_edit_matiere.do_matiere_list({"ue_id": ue["ue_id"]}) matlist = sco_edit_matiere.do_matiere_list({"ue_id": ue["ue_id"]})
for mat in matlist: for mat in matlist:
modsmat = sco_edit_module.do_module_list({"matiere_id": mat["matiere_id"]}) modsmat = sco_edit_module.module_list({"matiere_id": mat["matiere_id"]})
# XXX debug checks # XXX debug checks
for m in modsmat: for m in modsmat:
if m["ue_id"] != ue["ue_id"]: if m["ue_id"] != ue["ue_id"]:
@ -767,7 +767,7 @@ def do_formsemestre_createwithmodules(edit=False):
"responsable_id": tf[2]["MI" + str(module_id)], "responsable_id": tf[2]["MI" + str(module_id)],
} }
moduleimpl_id = sco_moduleimpl.do_moduleimpl_create(modargs) moduleimpl_id = sco_moduleimpl.do_moduleimpl_create(modargs)
mod = sco_edit_module.do_module_list({"module_id": module_id})[0] mod = sco_edit_module.module_list({"module_id": module_id})[0]
msg += ["création de %s (%s)" % (mod["code"], mod["titre"])] msg += ["création de %s (%s)" % (mod["code"], mod["titre"])]
# INSCRIPTIONS DES ETUDIANTS # INSCRIPTIONS DES ETUDIANTS
log( log(
@ -813,7 +813,7 @@ def do_formsemestre_createwithmodules(edit=False):
sco_moduleimpl.do_moduleimpl_edit( sco_moduleimpl.do_moduleimpl_edit(
modargs, formsemestre_id=formsemestre_id modargs, formsemestre_id=formsemestre_id
) )
mod = sco_edit_module.do_module_list({"module_id": module_id})[0] mod = sco_edit_module.module_list({"module_id": module_id})[0]
if msg: if msg:
msg_html = ( msg_html = (
@ -849,7 +849,7 @@ def formsemestre_delete_moduleimpls(formsemestre_id, module_ids_to_del):
moduleimpl_id = sco_moduleimpl.moduleimpl_list( moduleimpl_id = sco_moduleimpl.moduleimpl_list(
formsemestre_id=formsemestre_id, module_id=module_id formsemestre_id=formsemestre_id, module_id=module_id
)[0]["moduleimpl_id"] )[0]["moduleimpl_id"]
mod = sco_edit_module.do_module_list({"module_id": module_id})[0] mod = sco_edit_module.module_list({"module_id": module_id})[0]
# Evaluations dans ce module ? # Evaluations dans ce module ?
evals = sco_evaluations.do_evaluation_list({"moduleimpl_id": moduleimpl_id}) evals = sco_evaluations.do_evaluation_list({"moduleimpl_id": moduleimpl_id})
if evals: if evals:

View File

@ -229,7 +229,7 @@ def _make_table_notes(
E = evals[0] E = evals[0]
moduleimpl_id = E["moduleimpl_id"] moduleimpl_id = E["moduleimpl_id"]
M = sco_moduleimpl.moduleimpl_list(moduleimpl_id=moduleimpl_id)[0] M = sco_moduleimpl.moduleimpl_list(moduleimpl_id=moduleimpl_id)[0]
Mod = sco_edit_module.do_module_list(args={"module_id": M["module_id"]})[0] Mod = sco_edit_module.module_list(args={"module_id": M["module_id"]})[0]
sem = sco_formsemestre.get_formsemestre(M["formsemestre_id"]) sem = sco_formsemestre.get_formsemestre(M["formsemestre_id"])
# (debug) check that all evals are in same module: # (debug) check that all evals are in same module:
for e in evals: for e in evals:

View File

@ -148,7 +148,7 @@ def moduleimpl_withmodule_list(
for mi in modimpls: for mi in modimpls:
module_id = mi["module_id"] module_id = mi["module_id"]
if not mi["module_id"] in modules: if not mi["module_id"] in modules:
modules[module_id] = sco_edit_module.do_module_list( modules[module_id] = sco_edit_module.module_list(
args={"module_id": module_id} args={"module_id": module_id}
)[0] )[0]
mi["module"] = modules[module_id] mi["module"] = modules[module_id]

View File

@ -65,7 +65,7 @@ def moduleimpl_inscriptions_edit(moduleimpl_id, etuds=[], submitted=False):
""" """
M = sco_moduleimpl.moduleimpl_list(moduleimpl_id=moduleimpl_id)[0] M = sco_moduleimpl.moduleimpl_list(moduleimpl_id=moduleimpl_id)[0]
formsemestre_id = M["formsemestre_id"] formsemestre_id = M["formsemestre_id"]
mod = sco_edit_module.do_module_list(args={"module_id": M["module_id"]})[0] mod = sco_edit_module.module_list(args={"module_id": M["module_id"]})[0]
sem = sco_formsemestre.get_formsemestre(formsemestre_id) sem = sco_formsemestre.get_formsemestre(formsemestre_id)
# -- check lock # -- check lock
if not sem["etat"]: if not sem["etat"]:

View File

@ -158,7 +158,7 @@ def moduleimpl_status(moduleimpl_id=None, partition_id=None):
"""Tableau de bord module (liste des evaluations etc)""" """Tableau de bord module (liste des evaluations etc)"""
M = sco_moduleimpl.moduleimpl_list(moduleimpl_id=moduleimpl_id)[0] M = sco_moduleimpl.moduleimpl_list(moduleimpl_id=moduleimpl_id)[0]
formsemestre_id = M["formsemestre_id"] formsemestre_id = M["formsemestre_id"]
Mod = sco_edit_module.do_module_list(args={"module_id": M["module_id"]})[0] Mod = sco_edit_module.module_list(args={"module_id": M["module_id"]})[0]
sem = sco_formsemestre.get_formsemestre(formsemestre_id) sem = sco_formsemestre.get_formsemestre(formsemestre_id)
F = sco_formations.formation_list(args={"formation_id": sem["formation_id"]})[0] F = sco_formations.formation_list(args={"formation_id": sem["formation_id"]})[0]
ModInscrits = sco_moduleimpl.do_moduleimpl_inscription_list( ModInscrits = sco_moduleimpl.do_moduleimpl_inscription_list(

View File

@ -247,7 +247,7 @@ class PlacementRunner:
self.moduleimpl_data = sco_moduleimpl.moduleimpl_list( self.moduleimpl_data = sco_moduleimpl.moduleimpl_list(
moduleimpl_id=self.moduleimpl_id moduleimpl_id=self.moduleimpl_id
)[0] )[0]
self.module_data = sco_edit_module.do_module_list( self.module_data = sco_edit_module.module_list(
args={"module_id": self.moduleimpl_data["module_id"]} args={"module_id": self.moduleimpl_data["module_id"]}
)[0] )[0]
self.sem = sco_formsemestre.get_formsemestre( self.sem = sco_formsemestre.get_formsemestre(

View File

@ -252,7 +252,7 @@ def do_evaluation_upload_xls():
# news # news
E = sco_evaluations.do_evaluation_list({"evaluation_id": evaluation_id})[0] E = sco_evaluations.do_evaluation_list({"evaluation_id": evaluation_id})[0]
M = sco_moduleimpl.moduleimpl_list(moduleimpl_id=E["moduleimpl_id"])[0] M = sco_moduleimpl.moduleimpl_list(moduleimpl_id=E["moduleimpl_id"])[0]
mod = sco_edit_module.do_module_list(args={"module_id": M["module_id"]})[0] mod = sco_edit_module.module_list(args={"module_id": M["module_id"]})[0]
mod["moduleimpl_id"] = M["moduleimpl_id"] mod["moduleimpl_id"] = M["moduleimpl_id"]
mod["url"] = url_for( mod["url"] = url_for(
"notes.moduleimpl_status", "notes.moduleimpl_status",
@ -337,7 +337,7 @@ def do_evaluation_set_missing(evaluation_id, value, dialog_confirmed=False):
nb_changed, _, _ = _notes_add(current_user, evaluation_id, L, comment) nb_changed, _, _ = _notes_add(current_user, evaluation_id, L, comment)
# news # news
M = sco_moduleimpl.moduleimpl_list(moduleimpl_id=E["moduleimpl_id"])[0] M = sco_moduleimpl.moduleimpl_list(moduleimpl_id=E["moduleimpl_id"])[0]
mod = sco_edit_module.do_module_list(args={"module_id": M["module_id"]})[0] mod = sco_edit_module.module_list(args={"module_id": M["module_id"]})[0]
mod["moduleimpl_id"] = M["moduleimpl_id"] mod["moduleimpl_id"] = M["moduleimpl_id"]
mod["url"] = url_for( mod["url"] = url_for(
"notes.moduleimpl_status", "notes.moduleimpl_status",
@ -426,7 +426,7 @@ def evaluation_suppress_alln(evaluation_id, dialog_confirmed=False):
] ]
# news # news
M = sco_moduleimpl.moduleimpl_list(moduleimpl_id=E["moduleimpl_id"])[0] M = sco_moduleimpl.moduleimpl_list(moduleimpl_id=E["moduleimpl_id"])[0]
mod = sco_edit_module.do_module_list(args={"module_id": M["module_id"]})[0] mod = sco_edit_module.module_list(args={"module_id": M["module_id"]})[0]
mod["moduleimpl_id"] = M["moduleimpl_id"] mod["moduleimpl_id"] = M["moduleimpl_id"]
mod["url"] = "Notes/moduleimpl_status?moduleimpl_id=%(moduleimpl_id)s" % mod mod["url"] = "Notes/moduleimpl_status?moduleimpl_id=%(moduleimpl_id)s" % mod
sco_news.add( sco_news.add(
@ -767,7 +767,7 @@ def feuille_saisie_notes(evaluation_id, group_ids=[]):
E = evals[0] E = evals[0]
M = sco_moduleimpl.moduleimpl_list(moduleimpl_id=E["moduleimpl_id"])[0] M = sco_moduleimpl.moduleimpl_list(moduleimpl_id=E["moduleimpl_id"])[0]
formsemestre_id = M["formsemestre_id"] formsemestre_id = M["formsemestre_id"]
Mod = sco_edit_module.do_module_list(args={"module_id": M["module_id"]})[0] Mod = sco_edit_module.module_list(args={"module_id": M["module_id"]})[0]
sem = sco_formsemestre.get_formsemestre(M["formsemestre_id"]) sem = sco_formsemestre.get_formsemestre(M["formsemestre_id"])
mod_responsable = sco_users.user_info(M["responsable_id"]) mod_responsable = sco_users.user_info(M["responsable_id"])
if E["jour"]: if E["jour"]:
@ -845,7 +845,7 @@ def has_existing_decision(M, E, etudid):
return True return True
dec_ues = nt.get_etud_decision_ues(etudid) dec_ues = nt.get_etud_decision_ues(etudid)
if dec_ues: if dec_ues:
mod = sco_edit_module.do_module_list({"module_id": M["module_id"]})[0] mod = sco_edit_module.module_list({"module_id": M["module_id"]})[0]
ue_id = mod["ue_id"] ue_id = mod["ue_id"]
if ue_id in dec_ues: if ue_id in dec_ues:
return True # decision pour l'UE a laquelle appartient cette evaluation return True # decision pour l'UE a laquelle appartient cette evaluation
@ -1225,7 +1225,7 @@ def save_note(etudid=None, evaluation_id=None, value=None, comment=""):
) )
E = sco_evaluations.do_evaluation_list({"evaluation_id": evaluation_id})[0] E = sco_evaluations.do_evaluation_list({"evaluation_id": evaluation_id})[0]
M = sco_moduleimpl.moduleimpl_list(moduleimpl_id=E["moduleimpl_id"])[0] M = sco_moduleimpl.moduleimpl_list(moduleimpl_id=E["moduleimpl_id"])[0]
Mod = sco_edit_module.do_module_list(args={"module_id": M["module_id"]})[0] Mod = sco_edit_module.module_list(args={"module_id": M["module_id"]})[0]
Mod["url"] = url_for( Mod["url"] = url_for(
"notes.moduleimpl_status", "notes.moduleimpl_status",
scodoc_dept=g.scodoc_dept, scodoc_dept=g.scodoc_dept,

View File

@ -242,7 +242,7 @@ def module_tag_set(module_id="", taglist=None):
taglist = [t.strip() for t in taglist] taglist = [t.strip() for t in taglist]
# log("module_tag_set: module_id=%s taglist=%s" % (module_id, taglist)) # log("module_tag_set: module_id=%s taglist=%s" % (module_id, taglist))
# Sanity check: # Sanity check:
Mod = sco_edit_module.do_module_list(args={"module_id": module_id}) Mod = sco_edit_module.module_list(args={"module_id": module_id})
if not Mod: if not Mod:
raise ScoValueError("invalid module !") raise ScoValueError("invalid module !")

View File

@ -27,7 +27,7 @@ def start_scodoc_request():
"""Affecte toutes les requêtes, de tous les blueprints""" """Affecte toutes les requêtes, de tous les blueprints"""
# current_app.logger.info(f"start_scodoc_request") # current_app.logger.info(f"start_scodoc_request")
ndb.open_db_connection() ndb.open_db_connection()
if current_user.is_authenticated: if current_user and current_user.is_authenticated:
current_user.last_seen = datetime.datetime.utcnow() current_user.last_seen = datetime.datetime.utcnow()
db.session.commit() db.session.commit()
# caches locaux (durée de vie=la requête en cours) # caches locaux (durée de vie=la requête en cours)

View File

@ -396,7 +396,7 @@ sco_publish(
sco_edit_module.edit_module_set_code_apogee, sco_edit_module.edit_module_set_code_apogee,
Permission.ScoChangeFormation, Permission.ScoChangeFormation,
) )
sco_publish("/module_list", sco_edit_module.module_list, Permission.ScoView) sco_publish("/module_list", sco_edit_module.module_table, Permission.ScoView)
sco_publish("/module_tag_search", sco_tag_module.module_tag_search, Permission.ScoView) sco_publish("/module_tag_search", sco_tag_module.module_tag_search, Permission.ScoView)
sco_publish( sco_publish(
"/module_tag_set", "/module_tag_set",
@ -1528,7 +1528,7 @@ def evaluation_delete(evaluation_id):
raise ValueError("Evalution inexistante ! (%s)" % evaluation_id) raise ValueError("Evalution inexistante ! (%s)" % evaluation_id)
E = El[0] E = El[0]
M = sco_moduleimpl.moduleimpl_list(moduleimpl_id=E["moduleimpl_id"])[0] M = sco_moduleimpl.moduleimpl_list(moduleimpl_id=E["moduleimpl_id"])[0]
Mod = sco_edit_module.do_module_list(args={"module_id": M["module_id"]})[0] Mod = sco_edit_module.module_list(args={"module_id": M["module_id"]})[0]
tit = "Suppression de l'évaluation %(description)s (%(jour)s)" % E tit = "Suppression de l'évaluation %(description)s (%(jour)s)" % E
etat = sco_evaluations.do_evaluation_etat(evaluation_id) etat = sco_evaluations.do_evaluation_etat(evaluation_id)
H = [ H = [
@ -2429,7 +2429,7 @@ def check_sem_integrity(formsemestre_id, fix=False):
bad_sem = [] bad_sem = []
formations_set = set() # les formations mentionnées dans les UE et modules formations_set = set() # les formations mentionnées dans les UE et modules
for modimpl in modimpls: for modimpl in modimpls:
mod = sco_edit_module.do_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.do_ue_list({"ue_id": mod["ue_id"]})[0]
formations_set.add(ue["formation_id"]) formations_set.add(ue["formation_id"])
@ -2495,7 +2495,7 @@ def check_form_integrity(formation_id, fix=False):
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.do_matiere_list(args={"ue_id": ue["ue_id"]})
for mat in mats: for mat in mats:
mods = sco_edit_module.do_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:
if mod["ue_id"] != ue["ue_id"]: if mod["ue_id"] != ue["ue_id"]:
if fix: if fix:

View File

@ -52,7 +52,7 @@ def run_scenario1():
] ]
# --- Implémentation des modules # --- Implémentation des modules
modules = sco_edit_module.do_module_list({"formation_id": formation_id}) modules = sco_edit_module.module_list({"formation_id": formation_id})
mods_imp = [] mods_imp = []
for mod in modules: for mod in modules:
mi = G.create_moduleimpl( mi = G.create_moduleimpl(

View File

@ -203,7 +203,7 @@ class ScoFake(object):
module_type=None, module_type=None,
): ):
oid = sco_edit_module.do_module_create(locals()) oid = sco_edit_module.do_module_create(locals())
oids = sco_edit_module.do_module_list(args={"module_id": oid}) oids = sco_edit_module.module_list(args={"module_id": oid})
if not oids: if not oids:
raise ScoValueError("module not created ! (oid=%s)" % oid) raise ScoValueError("module not created ! (oid=%s)" % oid)
return oids[0] return oids[0]

View File

@ -33,7 +33,7 @@
# - moduleimpl_list # - moduleimpl_list
# - do_module_impl_with_module_list # - do_module_impl_with_module_list
# - do_formsemestre_delete # - do_formsemestre_delete
# - do_module_list # - module_list
# - do_module_delete # - do_module_delete
# - do_matiere_list # - do_matiere_list
# - do_matiere_delete # - do_matiere_delete
@ -290,12 +290,12 @@ def test_formations(test_client):
# RIEN NE SE PASSE AVEC CES FONCTIONS # RIEN NE SE PASSE AVEC CES FONCTIONS
li_module = sco_edit_module.do_module_list() li_module = sco_edit_module.module_list()
assert len(li_module) == 4 assert len(li_module) == 4
sco_edit_module.do_module_delete(oid=modt["module_id"]) # on supprime le semestre sco_edit_module.do_module_delete(oid=modt["module_id"]) # on supprime le semestre
# sco_formsemestre_edit.formsemestre_delete_moduleimpls( formsemestre_id=sem2["formsemestre_id"], module_ids_to_del=[modt["module_id"]]) # sco_formsemestre_edit.formsemestre_delete_moduleimpls( formsemestre_id=sem2["formsemestre_id"], module_ids_to_del=[modt["module_id"]])
# deuxieme methode de supression d'un module # deuxieme methode de supression d'un module
li_module2 = sco_edit_module.do_module_list() li_module2 = sco_edit_module.module_list()
assert len(li_module2) == 3 # verification de la suppression du module assert len(li_module2) == 3 # verification de la suppression du module
@ -355,7 +355,7 @@ def test_import_formation(test_client):
) )
] ]
# et les modules # et les modules
modules = sco_edit_module.do_module_list({"formation_id": formation_id}) modules = sco_edit_module.module_list({"formation_id": formation_id})
for mod in modules: for mod in modules:
mi = G.create_moduleimpl( mi = G.create_moduleimpl(
module_id=mod["module_id"], module_id=mod["module_id"],