Assiduites : justifier depuis tableau closes #841

This commit is contained in:
Iziram 2024-01-08 19:06:44 +01:00
parent 943604996b
commit a63ed6c0ef
2 changed files with 29 additions and 1 deletions

View File

@ -415,6 +415,18 @@ class RowAssiJusti(tb.Row):
) )
html.append(f'<a title="Supprimer" href="{url}">❌</a>') # utiliser url_for html.append(f'<a title="Supprimer" href="{url}">❌</a>') # utiliser url_for
# Justifier (si type Assiduité et est_just faux)
if self.ligne["type"] == "assiduite" and not self.ligne["est_just"]:
url = url_for(
"assiduites.tableau_assiduite_actions",
type=self.ligne["type"],
action="justifier",
obj_id=self.ligne["obj_id"],
scodoc_dept=g.scodoc_dept,
)
html.append(f'<a title="Justifier" href="{url}">🗄️</a>')
self.add_cell( self.add_cell(
"actions", "actions",
"", "",

View File

@ -1458,7 +1458,7 @@ def _prepare_tableau(
def tableau_assiduite_actions(): def tableau_assiduite_actions():
"""Edition/suppression/information sur une assiduité ou un justificatif """Edition/suppression/information sur une assiduité ou un justificatif
type = "assiduite" | "justificatif" type = "assiduite" | "justificatif"
action = "supprimer" | " action = "supprimer" | "details" | "justifier"
""" """
obj_type: str = request.args.get("type", "assiduite") obj_type: str = request.args.get("type", "assiduite")
action: str = request.args.get("action", "details") action: str = request.args.get("action", "details")
@ -1480,6 +1480,22 @@ def tableau_assiduite_actions():
return redirect(request.referrer) return redirect(request.referrer)
# Justification d'une assiduité depuis le tableau
if action == "justifier" and obj_type == "assiduite":
# Création du justificatif correspondant
justificatif_correspondant: Justificatif = Justificatif.create_justificatif(
etudiant=objet.etudiant,
date_debut=objet.date_debut,
date_fin=objet.date_fin,
etat=scu.EtatJustificatif.VALIDE,
user_id=current_user.id,
)
compute_assiduites_justified(objet.etudiant.id, [justificatif_correspondant])
flash(f"{objet_name} justifiée")
return redirect(request.referrer)
if request.method == "GET": if request.method == "GET":
module: str | int = "" # moduleimpl_id ou chaine libre module: str | int = "" # moduleimpl_id ou chaine libre