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