Suppression de toutes les décisions de jury d'un semestre
This commit is contained in:
parent
f6d442beb4
commit
e9f23d8b3e
@ -841,6 +841,7 @@ class DecisionsProposeesAnnee(DecisionsProposees):
|
|||||||
et autorisations d'inscription émises.
|
et autorisations d'inscription émises.
|
||||||
Efface même si étudiant DEM ou DEF.
|
Efface même si étudiant DEM ou DEF.
|
||||||
Si à cheval, n'efface que pour le semestre d'origine du deca.
|
Si à cheval, n'efface que pour le semestre d'origine du deca.
|
||||||
|
(commite la session.)
|
||||||
"""
|
"""
|
||||||
if only_one_sem or self.a_cheval:
|
if only_one_sem or self.a_cheval:
|
||||||
# N'efface que les autorisations venant de ce semestre,
|
# N'efface que les autorisations venant de ce semestre,
|
||||||
|
@ -166,9 +166,15 @@ def formsemestre_recapcomplet(
|
|||||||
H.append("<p>")
|
H.append("<p>")
|
||||||
if mode_jury:
|
if mode_jury:
|
||||||
H.append(
|
H.append(
|
||||||
f"""<a class="stdlink" href="{url_for('notes.formsemestre_validation_auto',
|
f"""<p><a class="stdlink" href="{url_for('notes.formsemestre_validation_auto',
|
||||||
scodoc_dept=g.scodoc_dept, formsemestre_id=formsemestre_id)
|
scodoc_dept=g.scodoc_dept, formsemestre_id=formsemestre_id)
|
||||||
}">Calcul automatique des décisions du jury</a></p>"""
|
}">Calcul automatique des décisions du jury</a>
|
||||||
|
</p><a class="stdlink" href="{url_for('notes.formsemestre_jury_but_erase',
|
||||||
|
scodoc_dept=g.scodoc_dept, formsemestre_id=formsemestre_id, only_one_sem=1)
|
||||||
|
}">Effacer <em>toutes</em> les décisions de jury du semestre</a>
|
||||||
|
<p>
|
||||||
|
</p>
|
||||||
|
"""
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
H.append(
|
H.append(
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
<h2>{{ title }}</h2>
|
<h2>{{ title }}</h2>
|
||||||
|
|
||||||
<div style="margin-top: 16px;">
|
<div style="margin-top: 16px;">
|
||||||
{{ explanation }}
|
{{ explanation|safe }}
|
||||||
</div>
|
</div>
|
||||||
<div style="margin-top: 16px;">
|
<div style="margin-top: 16px;">
|
||||||
<form method="post">
|
<form method="post">
|
||||||
|
@ -2817,6 +2817,11 @@ def formsemestre_jury_but_recap(formsemestre_id: int, selected_etudid: int = Non
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@bp.route(
|
||||||
|
"/formsemestre_jury_but_erase/<int:formsemestre_id>",
|
||||||
|
methods=["GET", "POST"],
|
||||||
|
defaults={"etudid": None},
|
||||||
|
)
|
||||||
@bp.route(
|
@bp.route(
|
||||||
"/formsemestre_jury_but_erase/<int:formsemestre_id>/<int:etudid>",
|
"/formsemestre_jury_but_erase/<int:formsemestre_id>/<int:etudid>",
|
||||||
methods=["GET", "POST"],
|
methods=["GET", "POST"],
|
||||||
@ -2828,14 +2833,25 @@ def formsemestre_jury_but_erase(
|
|||||||
):
|
):
|
||||||
"""Supprime la décision de jury BUT pour cette année.
|
"""Supprime la décision de jury BUT pour cette année.
|
||||||
Si only_one_sem, n'efface que pour le formsemestre indiqué, pas les deux de l'année.
|
Si only_one_sem, n'efface que pour le formsemestre indiqué, pas les deux de l'année.
|
||||||
|
Si l'étudiant n'est pas spécifié, efface les décisions de tous les inscrits.
|
||||||
"""
|
"""
|
||||||
only_one_sem = int(request.args.get("only_one_sem") or False)
|
only_one_sem = int(request.args.get("only_one_sem") or False)
|
||||||
|
if not sco_permissions_check.can_validate_sem(formsemestre_id):
|
||||||
|
raise ScoValueError("opération non autorisée")
|
||||||
formsemestre = FormSemestre.query.get_or_404(formsemestre_id)
|
formsemestre = FormSemestre.query.get_or_404(formsemestre_id)
|
||||||
if not formsemestre.formation.is_apc():
|
if not formsemestre.formation.is_apc():
|
||||||
raise ScoValueError("semestre non BUT")
|
raise ScoValueError("semestre non BUT")
|
||||||
|
if etudid is None:
|
||||||
|
etud = None
|
||||||
|
etuds = formsemestre.get_inscrits(include_demdef=True)
|
||||||
|
dest_url = url_for(
|
||||||
|
"notes.formsemestre_saisie_jury",
|
||||||
|
scodoc_dept=g.scodoc_dept,
|
||||||
|
formsemestre_id=formsemestre_id,
|
||||||
|
)
|
||||||
|
else:
|
||||||
etud: Identite = Identite.query.get_or_404(etudid)
|
etud: Identite = Identite.query.get_or_404(etudid)
|
||||||
if not sco_permissions_check.can_validate_sem(formsemestre_id):
|
etuds = [etud]
|
||||||
raise ScoValueError("opération non autorisée")
|
|
||||||
dest_url = url_for(
|
dest_url = url_for(
|
||||||
"notes.formsemestre_validation_but",
|
"notes.formsemestre_validation_but",
|
||||||
scodoc_dept=g.scodoc_dept,
|
scodoc_dept=g.scodoc_dept,
|
||||||
@ -2843,27 +2859,38 @@ def formsemestre_jury_but_erase(
|
|||||||
etudid=etudid,
|
etudid=etudid,
|
||||||
)
|
)
|
||||||
if request.method == "POST":
|
if request.method == "POST":
|
||||||
|
with sco_cache.DeferredSemCacheManager():
|
||||||
|
for etud in etuds:
|
||||||
deca = jury_but.DecisionsProposeesAnnee(etud, formsemestre)
|
deca = jury_but.DecisionsProposeesAnnee(etud, formsemestre)
|
||||||
deca.erase(only_one_sem=only_one_sem)
|
deca.erase(only_one_sem=only_one_sem)
|
||||||
db.session.commit()
|
|
||||||
log(f"formsemestre_jury_but_erase({formsemestre_id}, {etudid})")
|
log(f"formsemestre_jury_but_erase({formsemestre_id}, {etudid})")
|
||||||
flash(
|
flash(
|
||||||
|
(
|
||||||
"décisions de jury du semestre effacées"
|
"décisions de jury du semestre effacées"
|
||||||
if only_one_sem
|
if only_one_sem
|
||||||
else "décisions de jury des semestres de l'année BUT effacées"
|
else "décisions de jury des semestres de l'année BUT effacées"
|
||||||
)
|
)
|
||||||
|
+ f" pour {len(etuds)} étudiant{'s' if len(etuds) > 1 else ''}"
|
||||||
|
)
|
||||||
return redirect(dest_url)
|
return redirect(dest_url)
|
||||||
|
|
||||||
return render_template(
|
return render_template(
|
||||||
"confirm_dialog.html",
|
"confirm_dialog.html",
|
||||||
title=f"Effacer les validations de jury de {etud.nomprenom} ?",
|
title=f"""Effacer les validations de jury {
|
||||||
explanation=f"""Les validations d'UE et autorisations de passage
|
("de" + etud.nomprenom)
|
||||||
|
if etud
|
||||||
|
else ("des " + str(len(etuds)) + " étudiants inscrits dans ce semestre")
|
||||||
|
} ?""",
|
||||||
|
explanation=(
|
||||||
|
f"""Les validations d'UE et autorisations de passage
|
||||||
du semestre S{formsemestre.semestre_id} seront effacées."""
|
du semestre S{formsemestre.semestre_id} seront effacées."""
|
||||||
if only_one_sem
|
if only_one_sem
|
||||||
else """Ses validations de toutes les UE, RCUE (compétences) et année
|
else """Les validations de toutes les UE, RCUE (compétences) et année
|
||||||
issues de cette année scolaire seront effacées.
|
issues de cette année scolaire seront effacées.
|
||||||
Les décisions des années scolaires précédentes ne seront pas modifiées.
|
Les décisions des années scolaires précédentes ne seront pas modifiées.
|
||||||
""",
|
"""
|
||||||
|
)
|
||||||
|
+ """<div class="warning">Cette opération est irréversible !</div>""",
|
||||||
cancel_url=dest_url,
|
cancel_url=dest_url,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user