forked from ScoDoc/ScoDoc
Etat intermédiaire n°3
This commit is contained in:
parent
e3cde87a0f
commit
8477dc96ca
@ -156,7 +156,9 @@ class JuryPE(object):
|
|||||||
|
|
||||||
"""Génère les aggrégats de semestre (par ex: 1A, 3S, 5S) avec calcul
|
"""Génère les aggrégats de semestre (par ex: 1A, 3S, 5S) avec calcul
|
||||||
des moyennes pour le jury"""
|
des moyennes pour le jury"""
|
||||||
self.aggregats_taggues = compute_aggregats_tag(self.etudiants, self.semestres_taggues)
|
self.aggregats_taggues = compute_aggregats_tag(
|
||||||
|
self.etudiants, self.semestres_taggues
|
||||||
|
)
|
||||||
|
|
||||||
if pe_tools.PE_DEBUG:
|
if pe_tools.PE_DEBUG:
|
||||||
"""Intègre le bilan des aggrégats de semestres au zip final"""
|
"""Intègre le bilan des aggrégats de semestres au zip final"""
|
||||||
@ -170,7 +172,16 @@ class JuryPE(object):
|
|||||||
)
|
)
|
||||||
|
|
||||||
"""Génère les interclassements par (nom d') aggrégat"""
|
"""Génère les interclassements par (nom d') aggrégat"""
|
||||||
|
self.aggregats_taggues_interclasses = compute_interclassements(
|
||||||
|
self.etudiants, #
|
||||||
|
self.aggregats_taggues,
|
||||||
|
)
|
||||||
|
# Les interclassements
|
||||||
|
# --------------------
|
||||||
|
if pe_tools.PE_DEBUG:
|
||||||
|
pe_tools.pe_print(
|
||||||
|
"*** Création des interclassements au sein de la promo sur différentes combinaisons de semestres"
|
||||||
|
)
|
||||||
|
|
||||||
"""Synthèse des éléments du jury PE"""
|
"""Synthèse des éléments du jury PE"""
|
||||||
if False:
|
if False:
|
||||||
@ -193,15 +204,6 @@ class JuryPE(object):
|
|||||||
# Pour debug
|
# Pour debug
|
||||||
# self.syntheseJury = pe_tools.JURY_SYNTHESE_POUR_DEBUG #Un dictionnaire fictif pour debug
|
# self.syntheseJury = pe_tools.JURY_SYNTHESE_POUR_DEBUG #Un dictionnaire fictif pour debug
|
||||||
|
|
||||||
# Les interclassements
|
|
||||||
# --------------------
|
|
||||||
if pe_tools.PE_DEBUG:
|
|
||||||
pe_tools.pe_print(
|
|
||||||
"*** Création des interclassements au sein de la promo sur différentes combinaisons de semestres"
|
|
||||||
)
|
|
||||||
if False:
|
|
||||||
self.get_promotags_in_jury()
|
|
||||||
|
|
||||||
def add_file_to_zip(self, filename: str, data, path=""):
|
def add_file_to_zip(self, filename: str, data, path=""):
|
||||||
"""Add a file to our zip
|
"""Add a file to our zip
|
||||||
All files under NOM_EXPORT_ZIP/
|
All files under NOM_EXPORT_ZIP/
|
||||||
@ -229,42 +231,6 @@ class JuryPE(object):
|
|||||||
# Traitements des semestres impliqués dans le jury
|
# Traitements des semestres impliqués dans le jury
|
||||||
# **************************************************************************************************************** #
|
# **************************************************************************************************************** #
|
||||||
|
|
||||||
# **************************************************************************************************************** #
|
|
||||||
# Traitements des moyennes sur différentes combinaisons de parcours 1A, 2A, 3S et 4S,
|
|
||||||
# impliquées dans le jury
|
|
||||||
# **************************************************************************************************************** #
|
|
||||||
|
|
||||||
def get_promotags_in_jury(self):
|
|
||||||
"""Interclasse les étudiants, (nom d') aggrégat par aggrégat,
|
|
||||||
pour fournir un classement sur la promo.
|
|
||||||
"""
|
|
||||||
|
|
||||||
lesEtudids = self.etudiants.get_etudids(self.diplome)
|
|
||||||
|
|
||||||
for i, nom in enumerate(pe_tools.PARCOURS.keys()):
|
|
||||||
settag = app.pe.pe_settag_interclasse.SetTagInterClasse(
|
|
||||||
nom, diplome=self.diplome
|
|
||||||
)
|
|
||||||
nbreEtudInscrits = settag.set_Etudiants(
|
|
||||||
lesEtudids, self.etudiants.cursus, self.etudiants.identites
|
|
||||||
)
|
|
||||||
if nbreEtudInscrits > 0:
|
|
||||||
if pe_tools.PE_DEBUG:
|
|
||||||
pe_tools.pe_print(
|
|
||||||
"%d) %s avec interclassement sur la promo" % (i + 1, nom)
|
|
||||||
)
|
|
||||||
if nom in pe_tools.TOUS_LES_SEMESTRES:
|
|
||||||
settag.set_SetTagDict(self.semestres_taggues)
|
|
||||||
else: # cas des aggrégats
|
|
||||||
settag.set_SetTagDict(self.aggregats_taggues[nom])
|
|
||||||
settag.comp_data_settag()
|
|
||||||
self.promoTagDict[nom] = settag
|
|
||||||
else:
|
|
||||||
pe_tools.pe_print(
|
|
||||||
"%d) Pas d'interclassement %s sur la promo faute de notes"
|
|
||||||
% (i + 1, nom)
|
|
||||||
)
|
|
||||||
|
|
||||||
# **************************************************************************************************************** #
|
# **************************************************************************************************************** #
|
||||||
# Méthodes pour la synthèse du juryPE
|
# Méthodes pour la synthèse du juryPE
|
||||||
# *****************************************************************************************************************
|
# *****************************************************************************************************************
|
||||||
@ -721,7 +687,7 @@ def compute_aggregats_tag(etudiants: EtudiantsJuryPE, semestres_tag: dict[Semest
|
|||||||
|
|
||||||
"""Semestres aggrégés"""
|
"""Semestres aggrégés"""
|
||||||
if aggregat in pe_tools.TOUS_LES_SEMESTRES: # par ex. 'S2'
|
if aggregat in pe_tools.TOUS_LES_SEMESTRES: # par ex. 'S2'
|
||||||
noms_semestres_aggreges = [ aggregat ]
|
noms_semestres_aggreges = [aggregat]
|
||||||
else: # par ex. "5S"
|
else: # par ex. "5S"
|
||||||
noms_semestres_aggreges = pe_tools.PARCOURS[aggregat]["aggregat"]
|
noms_semestres_aggreges = pe_tools.PARCOURS[aggregat]["aggregat"]
|
||||||
nom_semestre_terminal = noms_semestres_aggreges[-1]
|
nom_semestre_terminal = noms_semestres_aggreges[-1]
|
||||||
@ -761,3 +727,34 @@ def compute_aggregats_tag(etudiants: EtudiantsJuryPE, semestres_tag: dict[Semest
|
|||||||
sets_tags[aggregat][fid] = settag # Mémorise le résultat
|
sets_tags[aggregat][fid] = settag # Mémorise le résultat
|
||||||
|
|
||||||
return sets_tags
|
return sets_tags
|
||||||
|
|
||||||
|
|
||||||
|
def compute_interclassements(
|
||||||
|
etudiants: EtudiantsJuryPE, aggregats_taggues: dict[str, dict]
|
||||||
|
):
|
||||||
|
"""Interclasse les étudiants, (nom d') aggrégat par aggrégat,
|
||||||
|
pour fournir un classement sur la promo. Le classement est établit au regard du nombre
|
||||||
|
d'étudiants ayant participé au même aggrégat.
|
||||||
|
"""
|
||||||
|
etudiants_diplomes = etudiants.get_etudiants_diplomes()
|
||||||
|
|
||||||
|
"""
|
||||||
|
for i, nom in enumerate(pe_tools.PARCOURS.keys()):
|
||||||
|
settag = app.pe.pe_settag_interclasse.SetTagInterClasse(nom, diplome=diplome)
|
||||||
|
nbreEtudInscrits = settag.set_Etudiants(
|
||||||
|
lesEtudids, self.etudiants.cursus, self.etudiants.identites
|
||||||
|
)
|
||||||
|
if nbreEtudInscrits > 0:
|
||||||
|
pe_tools.pe_print("%d) %s avec interclassement sur la promo" % (i + 1, nom))
|
||||||
|
if nom in pe_tools.TOUS_LES_SEMESTRES:
|
||||||
|
settag.set_SetTagDict(self.semestres_taggues)
|
||||||
|
else: # cas des aggrégats
|
||||||
|
settag.set_SetTagDict(self.aggregats_taggues[nom])
|
||||||
|
settag.comp_data_settag()
|
||||||
|
self.promoTagDict[nom] = settag
|
||||||
|
else:
|
||||||
|
pe_tools.pe_print(
|
||||||
|
"%d) Pas d'interclassement %s sur la promo faute de notes"
|
||||||
|
% (i + 1, nom)
|
||||||
|
)
|
||||||
|
"""
|
@ -1,19 +1,22 @@
|
|||||||
from app.pe import pe_tagtable
|
from app.pe import pe_tagtable
|
||||||
from app.pe.pe_tools import PE_DEBUG, pe_print
|
from app.pe.pe_tools import PE_DEBUG, pe_print
|
||||||
|
import app.pe.pe_etudiant as pe_etudiant
|
||||||
|
|
||||||
|
|
||||||
class SetTagInterClasse(pe_tagtable.TableTag):
|
class SetTagInterClasse(pe_tagtable.TableTag):
|
||||||
"""Récupère les moyennes de SetTag aggrégeant un même parcours (par ex un ['S1', 'S2']
|
"""Interclasse les étudiants d'une promo (ceux diplômé) par aggrégat de même nom
|
||||||
n'ayant pas fini au même S2
|
(par ex: un "3S"), pour stocker leur moyenne et fournir un classement de "promo".
|
||||||
pour fournir un interclassement sur un groupe d'étudiant => seul compte alors la promo
|
|
||||||
nom_combinaison = 'S1' ou '1A'
|
Les
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# -------------------------------------------------------------------------------------------------------------------
|
# -------------------------------------------------------------------------------------------------------------------
|
||||||
def __init__(self, nom_combinaison, diplome):
|
def __init__(self, nom:str, etudiants: EtudiantsJuryPE, aggregats_taggues: dict[str, dict]):
|
||||||
pe_tagtable.TableTag.__init__(self, nom=f"{nom_combinaison}_{diplome or ''}")
|
""""""
|
||||||
self.combinaison = nom_combinaison
|
pe_tagtable.TableTag.__init__(self, nom)
|
||||||
self.parcoursDict = {}
|
self.etudiants = etudiants
|
||||||
|
self.aggregats_taggues = aggregats_taggues # Les moyennes par aggrégats
|
||||||
|
|
||||||
|
|
||||||
# -------------------------------------------------------------------------------------------
|
# -------------------------------------------------------------------------------------------
|
||||||
def set_Etudiants(self, etudiants, juryPEDict, etudInfoDict, nom_sem_final=None):
|
def set_Etudiants(self, etudiants, juryPEDict, etudInfoDict, nom_sem_final=None):
|
||||||
|
Loading…
Reference in New Issue
Block a user