forked from ScoDoc/ScoDoc
Améliore édition assiduité (TableauAssiduiteActions)
This commit is contained in:
parent
ea4706e535
commit
9f6b865a33
@ -591,9 +591,9 @@ def get_justifs_from_date(
|
||||
def get_formsemestre_from_data(data: dict[str, datetime | int]) -> FormSemestre:
|
||||
"""
|
||||
get_formsemestre_from_data récupère un formsemestre en fonction des données passées
|
||||
|
||||
Si l'étudiant est inscrit à plusieurs formsemestre, prend le premier.
|
||||
Args:
|
||||
data (dict[str, datetime | int]): Une réprésentation simplifiée d'une assiduité ou d'un justificatif
|
||||
data (dict[str, datetime | int]): Une représentation simplifiée d'une assiduité ou d'un justificatif
|
||||
|
||||
data = {
|
||||
"etudid" : int,
|
||||
|
@ -9,9 +9,9 @@
|
||||
{% block app_content %}
|
||||
|
||||
{% if action == "modifier" %}
|
||||
{% include "assiduites/widgets/tableau_actions/modifier.j2" %}
|
||||
{% include "assiduites/widgets/tableau_actions/modifier.j2" %}
|
||||
{% else%}
|
||||
{% include "assiduites/widgets/tableau_actions/details.j2" %}
|
||||
{% include "assiduites/widgets/tableau_actions/details.j2" %}
|
||||
{% endif %}
|
||||
<br>
|
||||
<hr>
|
||||
|
@ -1,4 +1,8 @@
|
||||
<h1>Modifier {{type}} </h1>
|
||||
<h2>Modifier {{objet_name}} de {{ etud.html_link_fiche() | safe }}</h2>
|
||||
|
||||
<div>
|
||||
Actuellement noté{{etud.e}} en <b>{{objet_name|lower()}}</b> du {{objet.date_debut}} au {{objet.date_fin}}
|
||||
</div>
|
||||
|
||||
<form action="" method="post" enctype="multipart/form-data">
|
||||
<input type="hidden" name="obj_id" value="{{obj_id}}">
|
||||
|
@ -1256,30 +1256,37 @@ def _prepare_tableau(
|
||||
@scodoc
|
||||
@permission_required(Permission.AbsChange)
|
||||
def tableau_assiduite_actions():
|
||||
"""Edition/suppression/information sur une assiduité ou un justificatif
|
||||
type = "assiduite" | "justificatif"
|
||||
action = "supprimer" | "
|
||||
"""
|
||||
obj_type: str = request.args.get("type", "assiduite")
|
||||
action: str = request.args.get("action", "details")
|
||||
obj_id: str = int(request.args.get("obj_id", -1))
|
||||
|
||||
objet: Assiduite | Justificatif
|
||||
|
||||
objet_name = ""
|
||||
if obj_type == "assiduite":
|
||||
objet: Assiduite = Assiduite.query.get_or_404(obj_id)
|
||||
objet_name = scu.EtatAssiduite(objet.etat).version_lisible()
|
||||
else:
|
||||
objet: Justificatif = Justificatif.query.get_or_404(obj_id)
|
||||
objet_name = "Justificatif"
|
||||
|
||||
# Suppression : attention, POST ou GET !
|
||||
if action == "supprimer":
|
||||
objet.supprimer()
|
||||
if obj_type == "assiduite":
|
||||
flash("L'assiduité a bien été supprimée")
|
||||
else:
|
||||
flash("Le justificatif a bien été supprimé")
|
||||
flash(f"{objet_name} supprimé")
|
||||
|
||||
return redirect(request.referrer)
|
||||
|
||||
if request.method == "GET":
|
||||
module = ""
|
||||
module: str | int = "" # moduleimpl_id ou chaine libre
|
||||
|
||||
if obj_type == "assiduite":
|
||||
# Construction du menu module
|
||||
# XXX ca ne va pas car cela ne prend qu'un semestre
|
||||
# TODO reprendre le menu de la page ajout_assiduite_etud
|
||||
formsemestre = objet.get_formsemestre()
|
||||
if objet.moduleimpl_id is not None:
|
||||
module = objet.moduleimpl_id
|
||||
@ -1291,13 +1298,16 @@ def tableau_assiduite_actions():
|
||||
return render_template(
|
||||
"assiduites/pages/tableau_actions.j2",
|
||||
sco=ScoData(etud=objet.etudiant),
|
||||
# XXX type semble être utilisé qq part, ne pas changer
|
||||
type="Justificatif" if obj_type == "justificatif" else "Assiduité",
|
||||
action=action,
|
||||
etud=objet.etudiant,
|
||||
objet=_preparer_objet(obj_type, objet),
|
||||
objet_name=objet_name,
|
||||
obj_id=obj_id,
|
||||
moduleimpl=module,
|
||||
)
|
||||
# Cas des POSTS
|
||||
# ----- Cas POST
|
||||
if obj_type == "assiduite":
|
||||
try:
|
||||
_action_modifier_assiduite(objet)
|
||||
@ -1396,7 +1406,7 @@ def _action_modifier_justificatif(justi: Justificatif):
|
||||
def _preparer_objet(
|
||||
obj_type: str, objet: Assiduite | Justificatif, sans_gros_objet: bool = False
|
||||
) -> dict:
|
||||
# Préparation d'un objet pour simplifier l'affichage jinja
|
||||
"Préparation d'un objet pour simplifier l'affichage jinja"
|
||||
objet_prepare: dict = objet.to_dict()
|
||||
if obj_type == "assiduite":
|
||||
objet_prepare["etat"] = (
|
||||
|
Loading…
Reference in New Issue
Block a user