forked from ScoDoc/DocScoDoc
Jurys avec notes en ATTente. #592
This commit is contained in:
parent
1309e77bfa
commit
1e3dbe26c5
@ -779,6 +779,16 @@ class DecisionsProposeesAnnee(DecisionsProposees):
|
||||
if self.formsemestre_pair is not None:
|
||||
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(
|
||||
self, no_overwrite: bool = True, only_validantes: bool = False
|
||||
) -> bool:
|
||||
@ -787,11 +797,16 @@ class DecisionsProposeesAnnee(DecisionsProposees):
|
||||
- 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.
|
||||
|
||||
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é.
|
||||
"""
|
||||
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
|
||||
annee_scolaire = self.formsemestre.annee_scolaire()
|
||||
# UEs
|
||||
|
@ -172,6 +172,12 @@ class ResultatsSemestre(ResultatsCache):
|
||||
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...
|
||||
def load_validations(self) -> ValidationsSemestre:
|
||||
"""Load validations, set attribute and return value"""
|
||||
|
@ -17,6 +17,8 @@
|
||||
</li>
|
||||
<li>N'enregistre que les décisions <b>validantes de droit: ADM ou CMP</b>.
|
||||
</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>
|
||||
</ul>
|
||||
|
@ -2473,10 +2473,13 @@ def formsemestre_validation_but(
|
||||
)
|
||||
if deca.formsemestre_impair and deca.inscription_etat_impair != scu.INSCRIT:
|
||||
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:
|
||||
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(
|
||||
f"""
|
||||
<div>
|
||||
|
Loading…
Reference in New Issue
Block a user