forked from ScoDoc/ScoDoc
Update opolka/ScoDoc from ScoDoc/ScoDoc #2
@ -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,9 +318,12 @@ class ResultatsSemestreBUT(NotesTableCompat):
|
||||
or ApcValidationAnnee.query.filter_by(
|
||||
formsemestre_id=self.formsemestre.id, etudid=etudid
|
||||
).count()
|
||||
or ApcValidationRCUE.query.filter_by(
|
||||
formsemestre_id=self.formsemestre.id, etudid=etudid
|
||||
).count()
|
||||
or (
|
||||
include_rcues
|
||||
and ApcValidationRCUE.query.filter_by(
|
||||
formsemestre_id=self.formsemestre.id, etudid=etudid
|
||||
).count()
|
||||
)
|
||||
)
|
||||
|
||||
def get_validations_annee(self) -> dict[int, ApcValidationAnnee]:
|
||||
|
@ -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(
|
||||
|
@ -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
|
||||
|
||||
|
@ -294,7 +294,7 @@ def do_evaluation_upload_xls():
|
||||
len(absents)} absents, {nb_suppress} note supprimées)
|
||||
</p>"""
|
||||
if etudids_with_decisions:
|
||||
msg += """<p class="warning">Important: il y avait déjà des décisions de jury
|
||||
msg += """<p class="warning">Important: il y avait déjà des décisions de jury
|
||||
enregistrées, qui sont peut-être à revoir suite à cette modification !</p>
|
||||
"""
|
||||
return 1, msg
|
||||
@ -642,7 +642,7 @@ def notes_add(
|
||||
)
|
||||
cursor.execute(
|
||||
"""DELETE FROM notes_notes
|
||||
WHERE etudid = %(etudid)s
|
||||
WHERE etudid = %(etudid)s
|
||||
AND evaluation_id = %(evaluation_id)s
|
||||
""",
|
||||
args,
|
||||
@ -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")
|
||||
@ -691,7 +691,7 @@ def saisie_notes_tableur(evaluation_id, group_ids=()):
|
||||
avez l'autorisation d'effectuer cette opération)
|
||||
</p>
|
||||
<p><a class="stdlink" href="{
|
||||
url_for("notes.moduleimpl_status", scodoc_dept=g.scodoc_dept,
|
||||
url_for("notes.moduleimpl_status", scodoc_dept=g.scodoc_dept,
|
||||
moduleimpl_id=moduleimpl_id)
|
||||
}">Continuer</a></p>
|
||||
"""
|
||||
@ -740,7 +740,7 @@ def saisie_notes_tableur(evaluation_id, group_ids=()):
|
||||
</ul>
|
||||
</div>
|
||||
<form>
|
||||
<input type="hidden" name="evaluation_id" id="formnotes_evaluation_id"
|
||||
<input type="hidden" name="evaluation_id" id="formnotes_evaluation_id"
|
||||
value="{evaluation_id}"/>
|
||||
</form>
|
||||
"""
|
||||
@ -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())
|
||||
@ -1308,7 +1312,7 @@ def _form_saisie_notes(
|
||||
)
|
||||
H.append(tf.getform()) # check and init
|
||||
H.append(
|
||||
f"""<a href="{url_for("notes.moduleimpl_status", scodoc_dept=g.scodoc_dept,
|
||||
f"""<a href="{url_for("notes.moduleimpl_status", scodoc_dept=g.scodoc_dept,
|
||||
moduleimpl_id=modimpl.id)
|
||||
}" class="btn btn-primary">Terminer</a>
|
||||
"""
|
||||
|
Loading…
Reference in New Issue
Block a user