Modifie effacement décisions annuelles BUT et RCUE. Améliore affichage décisions
This commit is contained in:
parent
c928ccdcfe
commit
7712de19a2
@ -902,6 +902,8 @@ class DecisionsProposeesAnnee(DecisionsProposees):
|
||||
Efface même si étudiant DEM ou DEF.
|
||||
Si à cheval ou only_one_sem, n'efface que les décisions UE et les
|
||||
autorisations de passage du semestre d'origine du deca.
|
||||
|
||||
Dans tous les cas, efface les validations de l'année en cours.
|
||||
(commite la session.)
|
||||
"""
|
||||
if only_one_sem or self.a_cheval:
|
||||
@ -916,8 +918,7 @@ class DecisionsProposeesAnnee(DecisionsProposees):
|
||||
else:
|
||||
for dec_ue in self.decisions_ues.values():
|
||||
dec_ue.erase()
|
||||
for dec_rcue in self.decisions_rcue_by_niveau.values():
|
||||
dec_rcue.erase()
|
||||
|
||||
if self.formsemestre_impair:
|
||||
ScolarAutorisationInscription.delete_autorisation_etud(
|
||||
self.etud.id, self.formsemestre_impair.id
|
||||
@ -926,21 +927,27 @@ class DecisionsProposeesAnnee(DecisionsProposees):
|
||||
ScolarAutorisationInscription.delete_autorisation_etud(
|
||||
self.etud.id, self.formsemestre_pair.id
|
||||
)
|
||||
validations = ApcValidationAnnee.query.filter_by(
|
||||
# Efface les RCUEs
|
||||
for dec_rcue in self.decisions_rcue_by_niveau.values():
|
||||
dec_rcue.erase()
|
||||
|
||||
# Efface les validations concernant l'année BUT
|
||||
# de ce semestre
|
||||
validations = (
|
||||
ApcValidationAnnee.query.filter_by(
|
||||
etudid=self.etud.id,
|
||||
# XXX efface les validations émise depuis ce semestre
|
||||
# et pas toutes celles concernant cette l'année...
|
||||
# (utiliser formation_id pour changer cette politique)
|
||||
formsemestre_id=self.formsemestre.id,
|
||||
ordre=self.annee_but,
|
||||
)
|
||||
for validation in validations:
|
||||
db.session.delete(validation)
|
||||
Scolog.logdb(
|
||||
"jury_but",
|
||||
etudid=self.etud.id,
|
||||
msg=f"Validation année BUT{self.annee_but}: effacée",
|
||||
)
|
||||
.join(Formation)
|
||||
.filter_by(formation_code=self.formsemestre.formation.formation_code)
|
||||
)
|
||||
for validation in validations:
|
||||
db.session.delete(validation)
|
||||
Scolog.logdb(
|
||||
"jury_but",
|
||||
etudid=self.etud.id,
|
||||
msg=f"Validation année BUT{self.annee_but}: effacée",
|
||||
)
|
||||
|
||||
# Efface éventuelles validations de semestre
|
||||
# (en principe inutilisées en BUT)
|
||||
|
@ -79,17 +79,23 @@ class ScolarFormSemestreValidation(db.Model):
|
||||
def html(self, detail=False) -> str:
|
||||
"Affichage html"
|
||||
if self.ue_id is not None:
|
||||
return f"""Validation de l'UE {self.ue.acronyme} de {self.ue.formation.acronyme}
|
||||
return f"""Validation de l'UE <b>{self.ue.acronyme}</b>
|
||||
{('parcours <span class="parcours">'
|
||||
+ ", ".join([p.code for p in self.ue.parcours]))
|
||||
+ "</span>"
|
||||
if self.ue.parcours else ""}
|
||||
de {self.ue.formation.acronyme}
|
||||
{("émise par " + self.formsemestre.html_link_status())
|
||||
if self.formsemestre else ""}
|
||||
:<b>{self.code}</b>
|
||||
: <b>{self.code}</b>
|
||||
le {self.event_date.strftime("%d/%m/%Y")} à {self.event_date.strftime("%Hh%M")}
|
||||
"""
|
||||
else:
|
||||
return f"""Validation du semestre S{
|
||||
self.formsemestre.semestre_id if self.formsemestre else "?"}
|
||||
(<b>{self.code}</b>
|
||||
le {self.event_date.strftime("%d/%m/%Y")} à {self.event_date.strftime("%Hh%M")})
|
||||
{self.formsemestre.html_link_status() if self.formsemestre else ""}
|
||||
: <b>{self.code}</b>
|
||||
le {self.event_date.strftime("%d/%m/%Y")} à {self.event_date.strftime("%Hh%M")}
|
||||
"""
|
||||
|
||||
|
||||
|
@ -6,4 +6,8 @@ div.jury_decisions_list div {
|
||||
|
||||
div.jury_decisions_list form {
|
||||
display: inline-block;
|
||||
}
|
||||
}
|
||||
|
||||
span.parcours {
|
||||
color:blueviolet;
|
||||
}
|
||||
|
@ -26,9 +26,13 @@
|
||||
En conséquence, saisir ensuite <b>manuellement les décisions manquantes</b>,
|
||||
notamment sur les UEs en dessous de 10.
|
||||
</p>
|
||||
<p class="warning">
|
||||
Il est nécessaire de relire soigneusement les décisions à l'issue de cette procédure !
|
||||
</p>
|
||||
<div class="warning">
|
||||
<ul>
|
||||
<li>Ne jamais lancer ce calcul avant que toutes les notes ne soient saisies !
|
||||
(verrouiller le semestre ensuite)
|
||||
</li>
|
||||
<li>Il est nécessaire de relire soigneusement les décisions à l'issue de cette procédure !</li>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row">
|
||||
|
@ -2898,7 +2898,12 @@ def formsemestre_jury_but_erase(formsemestre_id: int, etudid: int = None):
|
||||
)
|
||||
+ """
|
||||
<p>Les décisions des années scolaires précédentes ne seront pas modifiées.</p>
|
||||
<div class="warning">Cette opération est irréversible !</div>
|
||||
<p>Efface aussi toutes les validations concernant l'année BUT de ce semestre,
|
||||
même si elles ont été acquises ailleurs.
|
||||
</p>
|
||||
<div class="warning">Cette opération est irréversible !
|
||||
A n'utiliser que dans des cas exceptionnels, vérifiez bien tous les étudiants ensuite.
|
||||
</div>
|
||||
""",
|
||||
cancel_url=dest_url,
|
||||
)
|
||||
|
Loading…
Reference in New Issue
Block a user