forked from ScoDoc/ScoDoc
Fix: PE: max de seq. vides
This commit is contained in:
parent
dd9351ca6e
commit
4fea9701cb
@ -486,7 +486,10 @@ class JuryPE(object):
|
||||
sesdates = [
|
||||
pe_tagtable.conversionDate_StrToDate(sem["date_fin"]) for sem in sessems
|
||||
] # association 1 date -> 1 semestrePE pour les semestres de l'étudiant
|
||||
lastdate = max(sesdates) # date de fin de l'inscription la plus récente
|
||||
if sesdates:
|
||||
lastdate = max(sesdates) # date de fin de l'inscription la plus récente
|
||||
else:
|
||||
return False
|
||||
|
||||
# if PETable.AFFICHAGE_DEBUG_PE == True : pe_tools.pe_print(" derniere inscription = ", lastDateSem)
|
||||
|
||||
@ -585,7 +588,7 @@ class JuryPE(object):
|
||||
for (i, fid) in enumerate(lesFids):
|
||||
if pe_tools.PE_DEBUG:
|
||||
pe_tools.pe_print(
|
||||
u"%d) Semestre taggué %s (avec classement dans groupe)"
|
||||
"%d) Semestre taggué %s (avec classement dans groupe)"
|
||||
% (i + 1, fid)
|
||||
)
|
||||
self.add_semtags_in_jury(fid)
|
||||
@ -620,7 +623,7 @@ class JuryPE(object):
|
||||
nbinscrit = self.semTagDict[fid].get_nbinscrits()
|
||||
if pe_tools.PE_DEBUG:
|
||||
pe_tools.pe_print(
|
||||
u" - %d étudiants classés " % (nbinscrit)
|
||||
" - %d étudiants classés " % (nbinscrit)
|
||||
+ ": "
|
||||
+ ",".join(
|
||||
[etudid for etudid in self.semTagDict[fid].get_etudids()]
|
||||
@ -628,12 +631,12 @@ class JuryPE(object):
|
||||
)
|
||||
if lesEtudidsManquants:
|
||||
pe_tools.pe_print(
|
||||
u" - dont %d étudiants manquants ajoutés aux données du jury"
|
||||
" - dont %d étudiants manquants ajoutés aux données du jury"
|
||||
% (len(lesEtudidsManquants))
|
||||
+ ": "
|
||||
+ ", ".join(lesEtudidsManquants)
|
||||
)
|
||||
pe_tools.pe_print(u" - Export csv")
|
||||
pe_tools.pe_print(" - Export csv")
|
||||
filename = self.NOM_EXPORT_ZIP + self.semTagDict[fid].nom + ".csv"
|
||||
self.zipfile.writestr(filename, self.semTagDict[fid].str_tagtable())
|
||||
|
||||
@ -742,7 +745,7 @@ class JuryPE(object):
|
||||
|
||||
for fid in fids_finaux:
|
||||
if pe_tools.PE_DEBUG and pe_tools.PE_DEBUG >= 1:
|
||||
pe_tools.pe_print(u" - semestre final %s" % (fid))
|
||||
pe_tools.pe_print(" - semestre final %s" % (fid))
|
||||
settag = pe_settag.SetTag(
|
||||
nom, parcours=parcours
|
||||
) # Le set tag fusionnant les données
|
||||
@ -762,7 +765,7 @@ class JuryPE(object):
|
||||
for ffid in settag.get_Fids_in_settag():
|
||||
if pe_tools.PE_DEBUG and pe_tools.PE_DEBUG >= 1:
|
||||
pe_tools.pe_print(
|
||||
u" -> ajout du semestre tagué %s" % (ffid)
|
||||
" -> ajout du semestre tagué %s" % (ffid)
|
||||
)
|
||||
self.add_semtags_in_jury(ffid)
|
||||
settag.set_SemTagDict(
|
||||
@ -791,7 +794,7 @@ class JuryPE(object):
|
||||
if nbreEtudInscrits > 0:
|
||||
if pe_tools.PE_DEBUG:
|
||||
pe_tools.pe_print(
|
||||
u"%d) %s avec interclassement sur la promo" % (i + 1, nom)
|
||||
"%d) %s avec interclassement sur la promo" % (i + 1, nom)
|
||||
)
|
||||
if nom in ["S1", "S2", "S3", "S4"]:
|
||||
settag.set_SetTagDict(self.semTagDict)
|
||||
@ -802,7 +805,7 @@ class JuryPE(object):
|
||||
else:
|
||||
if pe_tools.PE_DEBUG:
|
||||
pe_tools.pe_print(
|
||||
u"%d) Pas d'interclassement %s sur la promo faute de notes"
|
||||
"%d) Pas d'interclassement %s sur la promo faute de notes"
|
||||
% (i + 1, nom)
|
||||
)
|
||||
|
||||
@ -1152,11 +1155,14 @@ class JuryPE(object):
|
||||
return sesSems
|
||||
|
||||
# **********************************************
|
||||
def calcul_anneePromoDUT_d_un_etudiant(self, etudid):
|
||||
def calcul_anneePromoDUT_d_un_etudiant(self, etudid) -> int:
|
||||
"""Calcule et renvoie la date de diplome prévue pour un étudiant fourni avec son etudid
|
||||
en fonction de sesSemestres de scolarisation"""
|
||||
sesSemestres = self.get_semestresDUT_d_un_etudiant(etudid)
|
||||
return max([get_annee_diplome_semestre(sem) for sem in sesSemestres])
|
||||
en fonction de ses semestres de scolarisation"""
|
||||
semestres = self.get_semestresDUT_d_un_etudiant(etudid)
|
||||
if semestres:
|
||||
return max([get_annee_diplome_semestre(sem) for sem in semestres])
|
||||
else:
|
||||
return None
|
||||
|
||||
# *********************************************
|
||||
# Fonctions d'affichage pour debug
|
||||
@ -1184,18 +1190,21 @@ class JuryPE(object):
|
||||
chaine += "\n"
|
||||
return chaine
|
||||
|
||||
def get_date_entree_etudiant(self, etudid):
|
||||
"""Renvoie la date d'entree d'un étudiant"""
|
||||
return str(
|
||||
min([int(sem["annee_debut"]) for sem in self.ETUDINFO_DICT[etudid]["sems"]])
|
||||
)
|
||||
def get_date_entree_etudiant(self, etudid) -> str:
|
||||
"""Renvoie la date d'entree d'un étudiant: "1996" """
|
||||
annees_debut = [
|
||||
int(sem["annee_debut"]) for sem in self.ETUDINFO_DICT[etudid]["sems"]
|
||||
]
|
||||
if annees_debut:
|
||||
return str(min(annees_debut))
|
||||
return ""
|
||||
|
||||
|
||||
# ----------------------------------------------------------------------------------------
|
||||
# Fonctions
|
||||
|
||||
# ----------------------------------------------------------------------------------------
|
||||
def get_annee_diplome_semestre(sem):
|
||||
def get_annee_diplome_semestre(sem) -> int:
|
||||
"""Pour un semestre donne, décrit par le biais du dictionnaire sem usuel :
|
||||
sem = {'formestre_id': ..., 'semestre_id': ..., 'annee_debut': ...},
|
||||
à condition qu'il soit un semestre de formation DUT,
|
||||
|
Loading…
Reference in New Issue
Block a user