forked from ScoDoc/ScoDoc
Update opolka/ScoDoc from ScoDoc/ScoDoc #2
@ -307,7 +307,7 @@ class ResultatsSemestreBUT(NotesTableCompat):
|
|||||||
|
|
||||||
return ues_ids
|
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
|
"""True s'il y a une décision (quelconque) de jury
|
||||||
émanant de ce formsemestre pour cet étudiant.
|
émanant de ce formsemestre pour cet étudiant.
|
||||||
prend aussi en compte les autorisations de passage.
|
prend aussi en compte les autorisations de passage.
|
||||||
@ -318,9 +318,12 @@ class ResultatsSemestreBUT(NotesTableCompat):
|
|||||||
or ApcValidationAnnee.query.filter_by(
|
or ApcValidationAnnee.query.filter_by(
|
||||||
formsemestre_id=self.formsemestre.id, etudid=etudid
|
formsemestre_id=self.formsemestre.id, etudid=etudid
|
||||||
).count()
|
).count()
|
||||||
or ApcValidationRCUE.query.filter_by(
|
or (
|
||||||
formsemestre_id=self.formsemestre.id, etudid=etudid
|
include_rcues
|
||||||
).count()
|
and ApcValidationRCUE.query.filter_by(
|
||||||
|
formsemestre_id=self.formsemestre.id, etudid=etudid
|
||||||
|
).count()
|
||||||
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
def get_validations_annee(self) -> dict[int, ApcValidationAnnee]:
|
def get_validations_annee(self) -> dict[int, ApcValidationAnnee]:
|
||||||
|
@ -290,9 +290,10 @@ class NotesTableCompat(ResultatsSemestre):
|
|||||||
]
|
]
|
||||||
return etudids
|
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.
|
"""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.
|
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.
|
Sous-classée en BUT pour les RCUEs et années.
|
||||||
"""
|
"""
|
||||||
return bool(
|
return bool(
|
||||||
|
@ -7,7 +7,6 @@ from app import db
|
|||||||
from app.models import CODE_STR_LEN
|
from app.models import CODE_STR_LEN
|
||||||
from app.models.but_refcomp import ApcNiveau
|
from app.models.but_refcomp import ApcNiveau
|
||||||
from app.models.etudiants import Identite
|
from app.models.etudiants import Identite
|
||||||
from app.models.formations import Formation
|
|
||||||
from app.models.formsemestre import FormSemestre
|
from app.models.formsemestre import FormSemestre
|
||||||
from app.models.ues import UniteEns
|
from app.models.ues import UniteEns
|
||||||
|
|
||||||
|
@ -294,7 +294,7 @@ def do_evaluation_upload_xls():
|
|||||||
len(absents)} absents, {nb_suppress} note supprimées)
|
len(absents)} absents, {nb_suppress} note supprimées)
|
||||||
</p>"""
|
</p>"""
|
||||||
if etudids_with_decisions:
|
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>
|
enregistrées, qui sont peut-être à revoir suite à cette modification !</p>
|
||||||
"""
|
"""
|
||||||
return 1, msg
|
return 1, msg
|
||||||
@ -642,7 +642,7 @@ def notes_add(
|
|||||||
)
|
)
|
||||||
cursor.execute(
|
cursor.execute(
|
||||||
"""DELETE FROM notes_notes
|
"""DELETE FROM notes_notes
|
||||||
WHERE etudid = %(etudid)s
|
WHERE etudid = %(etudid)s
|
||||||
AND evaluation_id = %(evaluation_id)s
|
AND evaluation_id = %(evaluation_id)s
|
||||||
""",
|
""",
|
||||||
args,
|
args,
|
||||||
@ -660,7 +660,7 @@ def notes_add(
|
|||||||
nb_suppress += 1
|
nb_suppress += 1
|
||||||
if changed:
|
if changed:
|
||||||
etudids_changed.append(etudid)
|
etudids_changed.append(etudid)
|
||||||
if res.etud_has_decision(etudid):
|
if res.etud_has_decision(etudid, include_rcues=False):
|
||||||
etudids_with_decision.append(etudid)
|
etudids_with_decision.append(etudid)
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
log("*** exception in notes_add")
|
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)
|
avez l'autorisation d'effectuer cette opération)
|
||||||
</p>
|
</p>
|
||||||
<p><a class="stdlink" href="{
|
<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)
|
moduleimpl_id=moduleimpl_id)
|
||||||
}">Continuer</a></p>
|
}">Continuer</a></p>
|
||||||
"""
|
"""
|
||||||
@ -740,7 +740,7 @@ def saisie_notes_tableur(evaluation_id, group_ids=()):
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<form>
|
<form>
|
||||||
<input type="hidden" name="evaluation_id" id="formnotes_evaluation_id"
|
<input type="hidden" name="evaluation_id" id="formnotes_evaluation_id"
|
||||||
value="{evaluation_id}"/>
|
value="{evaluation_id}"/>
|
||||||
</form>
|
</form>
|
||||||
"""
|
"""
|
||||||
@ -1168,7 +1168,11 @@ def _form_saisie_notes(
|
|||||||
return '<div class="ue_warning"><span>Aucun étudiant sélectionné !</span></div>'
|
return '<div class="ue_warning"><span>Aucun étudiant sélectionné !</span></div>'
|
||||||
|
|
||||||
# Décisions de jury existantes ?
|
# 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 de décisions de jury (pour les inscrits à l'évaluation):
|
||||||
nb_decisions = sum(decisions_jury.values())
|
nb_decisions = sum(decisions_jury.values())
|
||||||
@ -1308,7 +1312,7 @@ def _form_saisie_notes(
|
|||||||
)
|
)
|
||||||
H.append(tf.getform()) # check and init
|
H.append(tf.getform()) # check and init
|
||||||
H.append(
|
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)
|
moduleimpl_id=modimpl.id)
|
||||||
}" class="btn btn-primary">Terminer</a>
|
}" class="btn btn-primary">Terminer</a>
|
||||||
"""
|
"""
|
||||||
|
Loading…
Reference in New Issue
Block a user