1
0
forked from ScoDoc/ScoDoc

Corrige la boucle en erreur pour le calcul des moyennes d'aggrégat

This commit is contained in:
Cléo Baras 2024-01-26 16:54:50 +01:00
parent 1b18034adb
commit f87902d1ac
3 changed files with 29 additions and 18 deletions

View File

@ -455,10 +455,8 @@ def compute_trajectoires_tag(
pe_comp.pe_print(f" --> Fusion {nom}")
"""Création de la trajectoire_tagguee associée"""
trajectoire_tagguee = TrajectoireTag(
nom, trajectoire, semestres_taggues, etudiants
)
trajectoire_tagguee = TrajectoireTag(nom, trajectoire, semestres_taggues)
"""Trajectoire_tagguee associée"""
"""Mémorise le résultat"""
trajectoires_tagguees[trajectoire_id] = trajectoire_tagguee

View File

@ -1,4 +1,4 @@
import app.pe.pe_comp as pe_tools
import app.pe.pe_comp as pe_comp
from app.models import FormSemestre
from app.pe.pe_etudiant import EtudiantsJuryPE, get_dernier_semestre_en_date
@ -83,16 +83,16 @@ class TrajectoiresJuryPE:
analysés + les mémorise dans les données de l'étudiant
"""
for nom_aggregat in pe_tools.TOUS_LES_SEMESTRES + pe_tools.TOUS_LES_AGGREGATS:
for nom_aggregat in pe_comp.TOUS_LES_SEMESTRES + pe_comp.TOUS_LES_AGGREGATS:
"""L'aggrégat considéré (par ex: 3S=S1+S2+S3), son nom de son semestre terminal (par ex: S3) et son numéro (par ex: 3)"""
noms_semestre_de_aggregat = pe_tools.PARCOURS[nom_aggregat]["aggregat"]
noms_semestre_de_aggregat = pe_comp.PARCOURS[nom_aggregat]["aggregat"]
nom_semestre_terminal = noms_semestre_de_aggregat[-1]
for etudid in etudiants.cursus:
if etudid not in self.suivi:
self.suivi[etudid] = {aggregat: None
for aggregat in pe_tools.TOUS_LES_SEMESTRES + pe_tools.TOUS_LES_AGGREGATS}
for aggregat in pe_comp.TOUS_LES_SEMESTRES + pe_comp.TOUS_LES_AGGREGATS}
"""Le formsemestre terminal (dernier en date) associé au
semestre marquant la fin de l'aggrégat
@ -124,6 +124,21 @@ class TrajectoiresJuryPE:
# assert dernier_semestre_aggregat == formsemestre_terminal
def get_trajectoires_etudid(trajectoires, etudid):
"""Fonction pour débuggage: renvoie la liste des trajectoires_id des
trajectoires suivies par un étudiant
"""
if etudid not in trajectoires.suivi:
pe_comp.pe_print(f"{etudid} fait-il bien partie du jury ?")
liste = []
for aggregat in pe_comp.TOUS_LES_PARCOURS:
trajet = trajectoires.suivi[etudid][aggregat]
if trajet:
liste.append(trajet.trajectoire_id)
return liste
def get_semestres_a_aggreger(self, aggregat: str, formsemestre_id_terminal: int):
"""Pour un nom d'aggrégat donné (par ex: 'S3') et un semestre terminal cible
identifié par son formsemestre_id (par ex: 'S3 2022-2023'),
@ -138,7 +153,7 @@ def get_semestres_a_aggreger(self, aggregat: str, formsemestre_id_terminal: int)
formsemestre_id_terminal: L'identifiant du formsemestre terminal de l'aggrégat, devant correspondre au
dernier semestre de l'aggrégat
"""
noms_semestres_aggreges = pe_tools.PARCOURS[aggregat]["aggregat"]
noms_semestres_aggreges = pe_comp.PARCOURS[aggregat]["aggregat"]
formsemestres = {}
for etudid in self.cursus:

View File

@ -64,8 +64,7 @@ class TrajectoireTag(TableTag):
self,
nom: str,
trajectoire: Trajectoire,
semestres_taggues: dict[int, SemestreTag],
donnees_etudiants: EtudiantsJuryPE,
semestres_taggues: dict[int, SemestreTag]
):
""" """
TableTag.__init__(self, nom=nom)
@ -80,14 +79,13 @@ class TrajectoireTag(TableTag):
self.semestres_aggreges = trajectoire.semestres_aggreges
self.semestres_tags_aggreges = {}
"""Les semestres tags associés aux semestres aggrégés"""
try:
self.semestres_tags_aggreges = {
frmsem_id: semestres_taggues[frmsem_id]
for frmsem_id in semestres_taggues
}
except:
raise ValueError("Semestres taggués manquants")
for frmsem_id in self.semestres_aggreges:
try:
self.semestres_tags_aggreges[frmsem_id] = semestres_taggues[frmsem_id]
except:
raise ValueError("Semestres taggués manquants")
"""Les étudiants (état civil + cursus connu)"""
self.etuds = nt.etuds