From 73fd6bfde5d005dced009ecd3d411ee7f0217c81 Mon Sep 17 00:00:00 2001 From: leonard_montalbano Date: Tue, 31 May 2022 16:08:57 +0200 Subject: [PATCH] avancement sur etat_evals, manque les 'saisie_notes' --- app/api/formsemestres.py | 82 +++++++++++++++++++++++++--------------- 1 file changed, 51 insertions(+), 31 deletions(-) diff --git a/app/api/formsemestres.py b/app/api/formsemestres.py index 393422b42..c89f08359 100644 --- a/app/api/formsemestres.py +++ b/app/api/formsemestres.py @@ -5,13 +5,17 @@ import app from app import models from app.api import bp from app.api.auth import token_auth, token_permission_required -from app.models import Departement, FormSemestre, FormSemestreEtape +from app.comp import res_sem +from app.comp.moy_mod import ModuleImplResults +from app.comp.res_compat import NotesTableCompat +from app.models import Departement, FormSemestre, FormSemestreEtape, Module, ModuleImpl from app.scodoc.sco_bulletins import get_formsemestre_bulletin_etud_json from app.scodoc.sco_evaluation_recap import evaluations_recap_table from app.scodoc.sco_evaluations import do_evaluation_etat_in_sem, do_evaluation_etat from app.scodoc.sco_groups import get_etud_groups from app.scodoc.sco_permissions import Permission from app.scodoc.sco_utils import ModuleType +import app.scodoc.sco_utils as scu @bp.route("/formsemestre/", methods=["GET"]) @@ -477,11 +481,7 @@ def etat_evals(formsemestre_id: int): Exemple de résultat : """ - # fonction utilisé : do_evaluation_etat() - - formsemestre = models.FormSemestre.query.filter_by( - id=formsemestre_id - ).first_or_404() + formsemestre = FormSemestre.query.get_or_404(formsemestre_id) dept = Departement.query.get(formsemestre.dept_id) @@ -489,34 +489,54 @@ def etat_evals(formsemestre_id: int): list_ues = formsemestre.query_ues() - moduleimpls = formsemestre.modimpls + nt: NotesTableCompat = res_sem.load_formsemestre_results(formsemestre) - res = [] ues = {} - modules = [] - - for moduleimpl in moduleimpls: - x = {} - module = models.Module.query.filter_by(id=moduleimpl.id).first_or_404() - x["id"] = module.id - x["titre"] = module.titre - - list_eval = [] - for eval in moduleimpl.evaluations: - list_eval.append(do_evaluation_etat(eval.id)) - x["evaluations"] = list_eval - - print(list_eval) - - modules.append(x) for ue in list_ues: - ues[ue.acronyme] = modules + modules = [] + mods = ue.modules - # print(ues) - print( - "###############################################################################" - ) - # print(modules) + for mod in mods: + dict_module = {} + moduleimpl = ModuleImpl.query.get_or_404(mod.id) - return jsonify(do_evaluation_etat_in_sem(formsemestre_id)) + modimpl_results: ModuleImplResults = nt.modimpls_results[moduleimpl.id] + + dict_module["id"] = mod.id + dict_module["titre"] = mod.titre + + list_eval = [] + for evaluation in moduleimpl.evaluations: + eval_etat = modimpl_results.evaluations_etat[evaluation.id] + eval = {} + + eval["id"] = evaluation.id + eval["description"] = evaluation.description + eval["datetime_epreuve"] = evaluation.jour + eval["heure_fin"] = evaluation.heure_fin.isoformat() + eval["comptee"] = "oui" if eval_etat.is_complete else "non" + eval["inscrits"] = modimpl_results.nb_inscrits_module + eval["manquantes"] = len( + modimpl_results.evals_etudids_sans_note[evaluation.id] + ) + eval["ABS"] = sum( + modimpl_results.evals_notes[evaluation.id] == scu.NOTES_ABSENCE + ) + eval["ATT"] = eval_etat.nb_attente + eval["EXC"] = sum( + modimpl_results.evals_notes[evaluation.id] == scu.NOTES_NEUTRALISE + ) + eval["saisie_notes"] = { + "datetime_debut": "", + "datetime_fin": "", + "datetime_mediane": "", + } + + list_eval.append(eval) + + dict_module["evaluations"] = list_eval + modules.append(dict_module) + ues[ue.acronyme] = modules + + return jsonify(ues)