forked from ScoDoc/ScoDoc
Jurys avec notes en ATTente. #592
This commit is contained in:
parent
73a242663f
commit
a8f97bedde
@ -779,6 +779,16 @@ class DecisionsProposeesAnnee(DecisionsProposees):
|
|||||||
if self.formsemestre_pair is not None:
|
if self.formsemestre_pair is not None:
|
||||||
sco_cache.invalidate_formsemestre(formsemestre_id=self.formsemestre_pair.id)
|
sco_cache.invalidate_formsemestre(formsemestre_id=self.formsemestre_pair.id)
|
||||||
|
|
||||||
|
def has_notes_en_attente(self) -> bool:
|
||||||
|
"Vrai si l'étudiant a au moins une note en attente dans le semestre origine de ce deca"
|
||||||
|
res = (
|
||||||
|
self.res_pair
|
||||||
|
if self.formsemestre_pair
|
||||||
|
and (self.formsemestre.id == self.formsemestre_pair.id)
|
||||||
|
else self.res_impair
|
||||||
|
)
|
||||||
|
return res and self.etud.id in res.get_etudids_attente()
|
||||||
|
|
||||||
def record_all(
|
def record_all(
|
||||||
self, no_overwrite: bool = True, only_validantes: bool = False
|
self, no_overwrite: bool = True, only_validantes: bool = False
|
||||||
) -> bool:
|
) -> bool:
|
||||||
@ -787,11 +797,16 @@ class DecisionsProposeesAnnee(DecisionsProposees):
|
|||||||
- Si "à cheval", ne modifie pas les codes UE de l'année scolaire précédente.
|
- Si "à cheval", ne modifie pas les codes UE de l'année scolaire précédente.
|
||||||
- Pour les RCUE: n'enregistre que si la nouvelle décision est plus favorable que l'ancienne.
|
- Pour les RCUE: n'enregistre que si la nouvelle décision est plus favorable que l'ancienne.
|
||||||
|
|
||||||
Si only_validantes, n'enregistre que des décisions "validantes" de droit: ADM ou CMP.
|
Si only_validantes, n'enregistre que des décisions "validantes" de droit: ADM ou CMP,
|
||||||
|
et seulement si l'étudiant n'a pas de notes en ATTente.
|
||||||
|
|
||||||
Return: True si au moins un code modifié et enregistré.
|
Return: True si au moins un code modifié et enregistré.
|
||||||
"""
|
"""
|
||||||
modif = False
|
modif = False
|
||||||
|
# Vérification notes en attente dans formsemestre origine
|
||||||
|
if only_validantes and self.has_notes_en_attente():
|
||||||
|
return False
|
||||||
|
|
||||||
# Toujours valider dans l'ordre UE, RCUE, Année
|
# Toujours valider dans l'ordre UE, RCUE, Année
|
||||||
annee_scolaire = self.formsemestre.annee_scolaire()
|
annee_scolaire = self.formsemestre.annee_scolaire()
|
||||||
# UEs
|
# UEs
|
||||||
|
@ -172,6 +172,12 @@ class ResultatsSemestre(ResultatsCache):
|
|||||||
if m.module.module_type == scu.ModuleType.SAE
|
if m.module.module_type == scu.ModuleType.SAE
|
||||||
]
|
]
|
||||||
|
|
||||||
|
def get_etudids_attente(self) -> set[int]:
|
||||||
|
"""L'ensemble des etudids ayant au moins une note en ATTente"""
|
||||||
|
return set().union(
|
||||||
|
*[mr.etudids_attente for mr in self.modimpls_results.values()]
|
||||||
|
)
|
||||||
|
|
||||||
# --- JURY...
|
# --- JURY...
|
||||||
def load_validations(self) -> ValidationsSemestre:
|
def load_validations(self) -> ValidationsSemestre:
|
||||||
"""Load validations, set attribute and return value"""
|
"""Load validations, set attribute and return value"""
|
||||||
|
@ -17,6 +17,8 @@
|
|||||||
</li>
|
</li>
|
||||||
<li>N'enregistre que les décisions <b>validantes de droit: ADM ou CMP</b>.
|
<li>N'enregistre que les décisions <b>validantes de droit: ADM ou CMP</b>.
|
||||||
</li>
|
</li>
|
||||||
|
<li>N'enregistre pas de décision si l'étudiant a une ou plusieurs notes en ATTente.
|
||||||
|
</li>
|
||||||
<li>L'assiduité n'est <b>pas</b> prise en compte.
|
<li>L'assiduité n'est <b>pas</b> prise en compte.
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -2473,10 +2473,13 @@ def formsemestre_validation_but(
|
|||||||
)
|
)
|
||||||
if deca.formsemestre_impair and deca.inscription_etat_impair != scu.INSCRIT:
|
if deca.formsemestre_impair and deca.inscription_etat_impair != scu.INSCRIT:
|
||||||
etat_ins = scu.ETATS_INSCRIPTION.get(deca.inscription_etat_impair, "inconnu?")
|
etat_ins = scu.ETATS_INSCRIPTION.get(deca.inscription_etat_impair, "inconnu?")
|
||||||
warning += f"""<div class="warning">{etat_ins} en S{deca.formsemestre_impair.semestre_id}"""
|
warning += f"""<div class="warning">{etat_ins} en S{deca.formsemestre_impair.semestre_id}</div>"""
|
||||||
if deca.formsemestre_pair and deca.inscription_etat_pair != scu.INSCRIT:
|
if deca.formsemestre_pair and deca.inscription_etat_pair != scu.INSCRIT:
|
||||||
etat_ins = scu.ETATS_INSCRIPTION.get(deca.inscription_etat_pair, "inconnu?")
|
etat_ins = scu.ETATS_INSCRIPTION.get(deca.inscription_etat_pair, "inconnu?")
|
||||||
warning += f"""<div class="warning">{etat_ins} en S{deca.formsemestre_pair.semestre_id}"""
|
warning += f"""<div class="warning">{etat_ins} en S{deca.formsemestre_pair.semestre_id}</div>"""
|
||||||
|
if deca.has_notes_en_attente():
|
||||||
|
warning += f"""<div class="warning">{etud.nomprenom} a des notes en ATTente.
|
||||||
|
Vous devriez régler cela avant de statuer en jury !</div>"""
|
||||||
H.append(
|
H.append(
|
||||||
f"""
|
f"""
|
||||||
<div>
|
<div>
|
||||||
|
Loading…
Reference in New Issue
Block a user