diff --git a/app/__init__.py b/app/__init__.py index 65707c26c..41875f33b 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -317,6 +317,8 @@ def set_sco_dept(scodoc_dept: str): g.scodoc_dept_id = dept.id # l'id if not hasattr(g, "db_conn"): ndb.open_db_connection() + if not hasattr(g, "stored_get_formsemestre"): + g.stored_get_formsemestre = {} def user_db_init(): diff --git a/app/scodoc/notes_table.py b/app/scodoc/notes_table.py index 5e8f2f190..136a2d89e 100644 --- a/app/scodoc/notes_table.py +++ b/app/scodoc/notes_table.py @@ -105,9 +105,7 @@ def get_sem_ues_modimpls(formsemestre_id, modimpls=None): modimpls = sco_moduleimpl.moduleimpl_list(formsemestre_id=formsemestre_id) uedict = {} for modimpl in modimpls: - mod = sco_edit_module.do_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 if not mod["ue_id"] in uedict: ue = sco_edit_ue.do_ue_list(args={"ue_id": mod["ue_id"]})[0] @@ -212,16 +210,19 @@ class NotesTable(object): valid_evals, mods_att, 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._matmoys = {} # moyennes par matieres self._valid_evals = {} # { evaluation_id : eval } for e in valid_evals: self._valid_evals[e["evaluation_id"]] = e # Liste des modules et 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: - 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: ue = sco_edit_ue.do_ue_list(args={"ue_id": mod["ue_id"]})[0] uedict[ue["ue_id"]] = ue diff --git a/app/scodoc/sco_compute_moy.py b/app/scodoc/sco_compute_moy.py index 86ce3bd1b..4d46f065c 100644 --- a/app/scodoc/sco_compute_moy.py +++ b/app/scodoc/sco_compute_moy.py @@ -27,10 +27,10 @@ """Calcul des moyennes de module """ - -import traceback import pprint +import traceback +from flask import url_for, g import app.scodoc.sco_utils as scu import app.scodoc.notesdb as ndb from app.scodoc.sco_utils import ( @@ -40,7 +40,7 @@ from app.scodoc.sco_utils import ( EVALUATION_RATTRAPAGE, EVALUATION_SESSION2, ) -from app.scodoc.sco_exceptions import ScoException +from app.scodoc.sco_exceptions import ScoValueError from app import log from app.scodoc import sco_abs from app.scodoc import sco_edit_module @@ -65,7 +65,8 @@ def moduleimpl_has_expression(mod): def formsemestre_expressions_use_abscounts(formsemestre_id): """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 ab = "nb_abs" # chaine recherchée @@ -128,7 +129,7 @@ def compute_user_formula( coefs, coefs_mask, 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, ): """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): etud = sco_etud.get_etud_info(etudid=etudid, filled=True)[0] - raise ScoException( - """valeur moyenne %s hors limite pour %s""" - % (user_moy, sem["formsemestre_id"], etudid, etud["nomprenom"]) + raise ScoValueError( + f""" + Valeur moyenne {user_moy} hors limite pour + {etud["nomprenom"]}""" ) except: log( @@ -183,7 +189,7 @@ def compute_user_formula( 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 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). @@ -193,12 +199,12 @@ def do_moduleimpl_moyennes(nt, mod): S'il manque des notes et que le coef n'est pas nul, la moyenne n'est pas calculée: NA Ne prend en compte que les evaluations où 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 - moduleimpl_id = mod["moduleimpl_id"] - is_malus = mod["module"]["module_type"] == scu.MODULE_MALUS - sem = sco_formsemestre.get_formsemestre(mod["formsemestre_id"]) + moduleimpl_id = modimpl["moduleimpl_id"] + is_malus = modimpl["module"]["module_type"] == scu.MODULE_MALUS + sem = sco_formsemestre.get_formsemestre(modimpl["formsemestre_id"]) etudids = sco_moduleimpl.moduleimpl_listeetuds( moduleimpl_id ) # tous, y compris demissions @@ -207,7 +213,7 @@ def do_moduleimpl_moyennes(nt, mod): [ x["etudid"] 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"]) ) # la plus ancienne en tête - user_expr = moduleimpl_has_expression(mod) + user_expr = moduleimpl_has_expression(modimpl) attente = False # recupere les notes de toutes les evaluations eval_rattr = None @@ -268,7 +274,7 @@ def do_moduleimpl_moyennes(nt, mod): ] # R = {} - formula = scu.unescape_html(mod["computation_expr"]) + formula = scu.unescape_html(modimpl["computation_expr"]) formula_use_abs = "abs" in formula 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 -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 } }, la liste des moduleimpls, la liste des evaluations valides, liste des moduleimpls avec notes en attente. @@ -383,15 +389,16 @@ def compute_modimpls_moyennes(nt, formsemestre_id): mods_att = [] expr_diags = [] for modimpl in modimpls: - mod = sco_edit_module.do_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 # add module dict to moduleimpl (used by nt) moduleimpl_id = modimpl["moduleimpl_id"] 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 += valid_evals_mod if attente: diff --git a/app/scodoc/sco_edit_formation.py b/app/scodoc/sco_edit_formation.py index ec97d9081..362f2312a 100644 --- a/app/scodoc/sco_edit_formation.py +++ b/app/scodoc/sco_edit_formation.py @@ -313,13 +313,13 @@ def invalidate_sems_in_formation(formation_id): def module_move(module_id, after=0, redirect=1): """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) after = int(after) # 0: deplace avant, 1 deplace apres if after not in (0, 1): raise ValueError('invalid value for "after"') 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) if len(others) > 1: idx = [p["module_id"] for p in others].index(module_id) diff --git a/app/scodoc/sco_edit_matiere.py b/app/scodoc/sco_edit_matiere.py index d4bdc6d87..13311e9b6 100644 --- a/app/scodoc/sco_edit_matiere.py +++ b/app/scodoc/sco_edit_matiere.py @@ -174,7 +174,7 @@ def do_matiere_delete(oid): raise ScoLockedFormError() log("do_matiere_delete: matiere_id=%s" % oid) # 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: sco_edit_module.do_module_delete(mod["module_id"]) _matiereEditor.delete(cnx, oid) diff --git a/app/scodoc/sco_edit_module.py b/app/scodoc/sco_edit_module.py index 1aeb20df6..51c5cef19 100644 --- a/app/scodoc/sco_edit_module.py +++ b/app/scodoc/sco_edit_module.py @@ -94,7 +94,7 @@ _moduleEditor = ndb.EditableTable( ) -def do_module_list(*args, **kw): +def module_list(*args, **kw): "list modules" cnx = ndb.GetDBConnexion() return _moduleEditor.list(cnx, *args, **kw) @@ -138,7 +138,7 @@ def module_create(matiere_id=None): _MODULE_HELP, ] # 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: default_num = max([m["numero"] for m in Mods]) + 10 else: @@ -252,7 +252,7 @@ def do_module_delete(oid): "delete module" 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"]): raise ScoLockedFormError() @@ -285,7 +285,7 @@ def module_delete(module_id=None): """Delete a module""" if not module_id: raise ScoValueError("invalid module !") - Mods = do_module_list(args={"module_id": module_id}) + Mods = module_list(args={"module_id": module_id}) if not Mods: raise ScoValueError("Module inexistant !") Mod = Mods[0] @@ -317,7 +317,7 @@ def do_module_edit(val): from app.scodoc import sco_edit_formation # 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"]): # formation verrouillée: empeche de modifier certains champs: 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): "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 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: raise ScoValueError("invalid module !") - Mod = do_module_list(args={"module_id": module_id}) + Mod = module_list(args={"module_id": module_id}) if not Mod: raise ScoValueError("invalid module !") Mod = Mod[0] @@ -521,7 +521,7 @@ def edit_module_set_code_apogee(id=None, value=None): value = value.strip("-_ \t") 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: return "module invalide" # should not occur @@ -531,7 +531,7 @@ def edit_module_set_code_apogee(id=None, value=None): return value -def module_list(formation_id): +def module_table(formation_id): """Liste des modules de la formation (XXX inutile ou a revoir) """ @@ -548,7 +548,7 @@ def module_list(formation_id): ] 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('
Le coefficient d'une évaluation n'est utilisé que pour pondérer les évaluations au sein d'un module. diff --git a/app/scodoc/sco_formations.py b/app/scodoc/sco_formations.py index 019d7833d..6781b1dcd 100644 --- a/app/scodoc/sco_formations.py +++ b/app/scodoc/sco_formations.py @@ -114,7 +114,7 @@ def formation_export(formation_id, export_ids=False, export_tags=True, format=No if not export_ids: del mat["matiere_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 for mod in mods: 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: 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): diff --git a/app/scodoc/sco_formsemestre_edit.py b/app/scodoc/sco_formsemestre_edit.py index bcfdddb70..8d13cf349 100644 --- a/app/scodoc/sco_formsemestre_edit.py +++ b/app/scodoc/sco_formsemestre_edit.py @@ -209,7 +209,7 @@ def do_formsemestre_createwithmodules(edit=False): for ue in uelist: matlist = sco_edit_matiere.do_matiere_list({"ue_id": ue["ue_id"]}) 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 for m in modsmat: 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)], } 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"])] # INSCRIPTIONS DES ETUDIANTS log( @@ -813,7 +813,7 @@ def do_formsemestre_createwithmodules(edit=False): sco_moduleimpl.do_moduleimpl_edit( 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: msg_html = ( @@ -849,7 +849,7 @@ def formsemestre_delete_moduleimpls(formsemestre_id, module_ids_to_del): moduleimpl_id = sco_moduleimpl.moduleimpl_list( formsemestre_id=formsemestre_id, module_id=module_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 ? evals = sco_evaluations.do_evaluation_list({"moduleimpl_id": moduleimpl_id}) if evals: diff --git a/app/scodoc/sco_liste_notes.py b/app/scodoc/sco_liste_notes.py index 04f94fff8..cee1a4c39 100644 --- a/app/scodoc/sco_liste_notes.py +++ b/app/scodoc/sco_liste_notes.py @@ -229,7 +229,7 @@ def _make_table_notes( E = evals[0] moduleimpl_id = E["moduleimpl_id"] 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"]) # (debug) check that all evals are in same module: for e in evals: diff --git a/app/scodoc/sco_moduleimpl.py b/app/scodoc/sco_moduleimpl.py index 87a11bf7c..b18e9b5c9 100644 --- a/app/scodoc/sco_moduleimpl.py +++ b/app/scodoc/sco_moduleimpl.py @@ -148,7 +148,7 @@ def moduleimpl_withmodule_list( for mi in modimpls: module_id = mi["module_id"] 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} )[0] mi["module"] = modules[module_id] diff --git a/app/scodoc/sco_moduleimpl_inscriptions.py b/app/scodoc/sco_moduleimpl_inscriptions.py index 1517e6268..41ad53fad 100644 --- a/app/scodoc/sco_moduleimpl_inscriptions.py +++ b/app/scodoc/sco_moduleimpl_inscriptions.py @@ -65,7 +65,7 @@ def moduleimpl_inscriptions_edit(moduleimpl_id, etuds=[], submitted=False): """ M = sco_moduleimpl.moduleimpl_list(moduleimpl_id=moduleimpl_id)[0] 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) # -- check lock if not sem["etat"]: diff --git a/app/scodoc/sco_moduleimpl_status.py b/app/scodoc/sco_moduleimpl_status.py index a54a0e431..899b8778a 100644 --- a/app/scodoc/sco_moduleimpl_status.py +++ b/app/scodoc/sco_moduleimpl_status.py @@ -158,7 +158,7 @@ def moduleimpl_status(moduleimpl_id=None, partition_id=None): """Tableau de bord module (liste des evaluations etc)""" M = sco_moduleimpl.moduleimpl_list(moduleimpl_id=moduleimpl_id)[0] 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) F = sco_formations.formation_list(args={"formation_id": sem["formation_id"]})[0] ModInscrits = sco_moduleimpl.do_moduleimpl_inscription_list( diff --git a/app/scodoc/sco_placement.py b/app/scodoc/sco_placement.py index e09df0e88..6fa6f412f 100644 --- a/app/scodoc/sco_placement.py +++ b/app/scodoc/sco_placement.py @@ -247,7 +247,7 @@ class PlacementRunner: self.moduleimpl_data = sco_moduleimpl.moduleimpl_list( moduleimpl_id=self.moduleimpl_id )[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"]} )[0] self.sem = sco_formsemestre.get_formsemestre( diff --git a/app/scodoc/sco_saisie_notes.py b/app/scodoc/sco_saisie_notes.py index 6c6638cd1..356ff339d 100644 --- a/app/scodoc/sco_saisie_notes.py +++ b/app/scodoc/sco_saisie_notes.py @@ -252,7 +252,7 @@ def do_evaluation_upload_xls(): # news E = sco_evaluations.do_evaluation_list({"evaluation_id": evaluation_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["url"] = url_for( "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) # news 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["url"] = url_for( "notes.moduleimpl_status", @@ -426,7 +426,7 @@ def evaluation_suppress_alln(evaluation_id, dialog_confirmed=False): ] # news 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["url"] = "Notes/moduleimpl_status?moduleimpl_id=%(moduleimpl_id)s" % mod sco_news.add( @@ -767,7 +767,7 @@ def feuille_saisie_notes(evaluation_id, group_ids=[]): E = evals[0] M = sco_moduleimpl.moduleimpl_list(moduleimpl_id=E["moduleimpl_id"])[0] 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"]) mod_responsable = sco_users.user_info(M["responsable_id"]) if E["jour"]: @@ -845,7 +845,7 @@ def has_existing_decision(M, E, etudid): return True dec_ues = nt.get_etud_decision_ues(etudid) 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"] if ue_id in dec_ues: 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] 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( "notes.moduleimpl_status", scodoc_dept=g.scodoc_dept, diff --git a/app/scodoc/sco_tag_module.py b/app/scodoc/sco_tag_module.py index 944f95053..b106a754e 100644 --- a/app/scodoc/sco_tag_module.py +++ b/app/scodoc/sco_tag_module.py @@ -242,7 +242,7 @@ def module_tag_set(module_id="", taglist=None): taglist = [t.strip() for t in taglist] # log("module_tag_set: module_id=%s taglist=%s" % (module_id, taglist)) # 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: raise ScoValueError("invalid module !") diff --git a/app/views/__init__.py b/app/views/__init__.py index 9dbefc445..9ceb5c41e 100644 --- a/app/views/__init__.py +++ b/app/views/__init__.py @@ -27,7 +27,7 @@ def start_scodoc_request(): """Affecte toutes les requêtes, de tous les blueprints""" # current_app.logger.info(f"start_scodoc_request") ndb.open_db_connection() - if current_user.is_authenticated: + if current_user and current_user.is_authenticated: current_user.last_seen = datetime.datetime.utcnow() db.session.commit() # caches locaux (durée de vie=la requête en cours) diff --git a/app/views/notes.py b/app/views/notes.py index ece1029ee..0b089e3c5 100644 --- a/app/views/notes.py +++ b/app/views/notes.py @@ -396,7 +396,7 @@ sco_publish( sco_edit_module.edit_module_set_code_apogee, 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_set", @@ -1528,7 +1528,7 @@ def evaluation_delete(evaluation_id): raise ValueError("Evalution inexistante ! (%s)" % evaluation_id) E = El[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 etat = sco_evaluations.do_evaluation_etat(evaluation_id) H = [ @@ -2429,7 +2429,7 @@ def check_sem_integrity(formsemestre_id, fix=False): bad_sem = [] formations_set = set() # les formations mentionnées dans les UE et modules 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"]) ue = sco_edit_ue.do_ue_list({"ue_id": mod["ue_id"]})[0] formations_set.add(ue["formation_id"]) @@ -2495,7 +2495,7 @@ def check_form_integrity(formation_id, fix=False): for ue in ues: mats = sco_edit_matiere.do_matiere_list(args={"ue_id": ue["ue_id"]}) 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: if mod["ue_id"] != ue["ue_id"]: if fix: diff --git a/tests/scenarios/test_scenario1_formation.py b/tests/scenarios/test_scenario1_formation.py index 197b103cc..9447674b9 100644 --- a/tests/scenarios/test_scenario1_formation.py +++ b/tests/scenarios/test_scenario1_formation.py @@ -52,7 +52,7 @@ def run_scenario1(): ] # --- 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 = [] for mod in modules: mi = G.create_moduleimpl( diff --git a/tests/unit/sco_fake_gen.py b/tests/unit/sco_fake_gen.py index 1daf142b9..f761403eb 100644 --- a/tests/unit/sco_fake_gen.py +++ b/tests/unit/sco_fake_gen.py @@ -203,7 +203,7 @@ class ScoFake(object): module_type=None, ): 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: raise ScoValueError("module not created ! (oid=%s)" % oid) return oids[0] diff --git a/tests/unit/test_formations.py b/tests/unit/test_formations.py index 36cb67367..534638471 100644 --- a/tests/unit/test_formations.py +++ b/tests/unit/test_formations.py @@ -33,7 +33,7 @@ # - moduleimpl_list # - do_module_impl_with_module_list # - do_formsemestre_delete -# - do_module_list +# - module_list # - do_module_delete # - do_matiere_list # - do_matiere_delete @@ -290,12 +290,12 @@ def test_formations(test_client): # 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 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"]]) # 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 @@ -355,7 +355,7 @@ def test_import_formation(test_client): ) ] # 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: mi = G.create_moduleimpl( module_id=mod["module_id"],