Retire message d'avertissement sur saisie note s'il y a un RCUE déjà validé

This commit is contained in:
Emmanuel Viennet 2023-11-16 12:31:53 +01:00
parent bb9995fca6
commit ba1089e8a9
4 changed files with 20 additions and 13 deletions

View File

@ -307,7 +307,7 @@ class ResultatsSemestreBUT(NotesTableCompat):
return ues_ids
def etud_has_decision(self, etudid) -> bool:
def etud_has_decision(self, etudid, include_rcues=True) -> bool:
"""True s'il y a une décision (quelconque) de jury
émanant de ce formsemestre pour cet étudiant.
prend aussi en compte les autorisations de passage.
@ -318,10 +318,13 @@ class ResultatsSemestreBUT(NotesTableCompat):
or ApcValidationAnnee.query.filter_by(
formsemestre_id=self.formsemestre.id, etudid=etudid
).count()
or ApcValidationRCUE.query.filter_by(
or (
include_rcues
and ApcValidationRCUE.query.filter_by(
formsemestre_id=self.formsemestre.id, etudid=etudid
).count()
)
)
def get_validations_annee(self) -> dict[int, ApcValidationAnnee]:
"""Les validations des étudiants de ce semestre

View File

@ -290,9 +290,10 @@ class NotesTableCompat(ResultatsSemestre):
]
return etudids
def etud_has_decision(self, etudid) -> bool:
def etud_has_decision(self, etudid, include_rcues=True) -> bool:
"""True s'il y a une décision de jury pour cet étudiant émanant de ce formsemestre.
prend aussi en compte les autorisations de passage.
Si include_rcues, prend en compte les validation d'RCUEs en BUT (pas d'effet en classic).
Sous-classée en BUT pour les RCUEs et années.
"""
return bool(

View File

@ -7,7 +7,6 @@ from app import db
from app.models import CODE_STR_LEN
from app.models.but_refcomp import ApcNiveau
from app.models.etudiants import Identite
from app.models.formations import Formation
from app.models.formsemestre import FormSemestre
from app.models.ues import UniteEns

View File

@ -660,7 +660,7 @@ def notes_add(
nb_suppress += 1
if changed:
etudids_changed.append(etudid)
if res.etud_has_decision(etudid):
if res.etud_has_decision(etudid, include_rcues=False):
etudids_with_decision.append(etudid)
except Exception as exc:
log("*** exception in notes_add")
@ -1168,7 +1168,11 @@ def _form_saisie_notes(
return '<div class="ue_warning"><span>Aucun étudiant sélectionné !</span></div>'
# Décisions de jury existantes ?
decisions_jury = {etudid: res.etud_has_decision(etudid) for etudid in etudids}
# en BUT on ne considère pas les RCUEs car ils peuvenut avoir été validés depuis
# d'autres semestres (les validations de RCUE n'indiquent pas si elles sont "externes")
decisions_jury = {
etudid: res.etud_has_decision(etudid, include_rcues=False) for etudid in etudids
}
# Nb de décisions de jury (pour les inscrits à l'évaluation):
nb_decisions = sum(decisions_jury.values())