From ef8e9b4ef091eb8fe451858a68e97d82b61391d0 Mon Sep 17 00:00:00 2001 From: Emmanuel Viennet Date: Thu, 16 Dec 2021 12:41:37 +0100 Subject: [PATCH] =?UTF-8?q?Bulletin=20d=C3=A9missionnaires:=20closes=20#22?= =?UTF-8?q?6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/but/bulletin_but.py | 97 ++++++++++++++++++++++++++++------------- 1 file changed, 66 insertions(+), 31 deletions(-) diff --git a/app/but/bulletin_but.py b/app/but/bulletin_but.py index c9caec21..9d8e80cb 100644 --- a/app/but/bulletin_but.py +++ b/app/but/bulletin_but.py @@ -219,6 +219,7 @@ class ResultatsSemestreBUT: def bulletin_etud(self, etud, formsemestre) -> dict: """Le bulletin de l'étudiant dans ce semestre""" + etat_inscription = etud.etat_inscription(formsemestre.id) d = { "version": "0", "type": "BUT", @@ -231,39 +232,73 @@ class ResultatsSemestreBUT: "titre": formsemestre.formation.titre, }, "formsemestre_id": formsemestre.id, - "ressources": self.etud_mods_results(etud, self.ressources), - "saes": self.etud_mods_results(etud, self.saes), - "ues": {ue.acronyme: self.etud_ue_results(etud, ue) for ue in self.ues}, - "semestre": { - "notes": { # moyenne des moyennes générales du semestre - "value": fmt_note(self.etud_moy_gen[etud.id]), - "min": fmt_note(self.etud_moy_gen.min()), - "moy": fmt_note(self.etud_moy_gen.mean()), - "max": fmt_note(self.etud_moy_gen.max()), - }, - "rang": { # classement wrt moyenne général, indicatif - "value": self.etud_moy_gen_ranks[etud.id], - "total": len(self.etuds), - }, - "absences": { # XXX TODO - "injustifie": 1, - "total": 33, - }, - "etapes": { # XXX TODO - # à spécifier: liste des étapes Apogée - }, - "date_debut": formsemestre.date_debut.isoformat(), - "date_fin": formsemestre.date_fin.isoformat(), - "annee_universitaire": self.formsemestre.annee_scolaire_str(), - "inscription": "TODO-MM-JJ", # XXX TODO - "numero": formsemestre.semestre_id, - "decision": None, # XXX TODO - "situation": "Décision jury: Validé. Diplôme obtenu.", # XXX TODO - "date_jury": "AAAA-MM-JJ", # XXX TODO - "groupes": [], # XXX TODO - }, + "etat_inscription": etat_inscription, "options": bulletin_option_affichage(formsemestre), } + semestre_infos = { + "etapes": { # XXX TODO + # à spécifier: liste des étapes Apogée + }, + "date_debut": formsemestre.date_debut.isoformat(), + "date_fin": formsemestre.date_fin.isoformat(), + "annee_universitaire": self.formsemestre.annee_scolaire_str(), + "inscription": "TODO-MM-JJ", # XXX TODO + "numero": formsemestre.semestre_id, + "decision": None, # XXX TODO + "situation": "non disponible", # "Décision jury: Validé. Diplôme obtenu.", # XXX TODO + "date_jury": "AAAA-MM-JJ", # XXX TODO + "groupes": [], # XXX TODO + "absences": { # XXX TODO + "injustifie": 1, + "total": 33, + }, + } + if etat_inscription == scu.INSCRIT: + semestre_infos.update( + { + "notes": { # moyenne des moyennes générales du semestre + "value": fmt_note(self.etud_moy_gen[etud.id]), + "min": fmt_note(self.etud_moy_gen.min()), + "moy": fmt_note(self.etud_moy_gen.mean()), + "max": fmt_note(self.etud_moy_gen.max()), + }, + "rang": { # classement wrt moyenne général, indicatif + "value": self.etud_moy_gen_ranks[etud.id], + "total": len(self.etuds), + }, + }, + ) + d.update( + { + "ressources": self.etud_mods_results(etud, self.ressources), + "saes": self.etud_mods_results(etud, self.saes), + "ues": { + ue.acronyme: self.etud_ue_results(etud, ue) for ue in self.ues + }, + "semestre": semestre_infos, + }, + ) + else: + semestre_infos.update( + { + "notes": { + "value": "DEM", + "min": "", + "moy": "", + "max": "", + }, + "rang": {"value": "DEM", "total": len(self.etuds)}, + } + ) + d.update( + { + "semestre": semestre_infos, + "ressources": {}, + "saes": {}, + "ues": {}, + } + ) + return d