From 9f6b865a3370f332effb2e0f0828ada640d2c784 Mon Sep 17 00:00:00 2001 From: Emmanuel Viennet Date: Wed, 6 Dec 2023 14:42:10 +0100 Subject: [PATCH] =?UTF-8?q?Am=C3=A9liore=20=C3=A9dition=20assiduit=C3=A9?= =?UTF-8?q?=20(TableauAssiduiteActions)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/assiduites.py | 4 +-- .../assiduites/pages/tableau_actions.j2 | 6 ++--- .../widgets/tableau_actions/modifier.j2 | 8 ++++-- app/views/assiduites.py | 26 +++++++++++++------ 4 files changed, 29 insertions(+), 15 deletions(-) diff --git a/app/models/assiduites.py b/app/models/assiduites.py index 060a4c0e8e..715abf311d 100644 --- a/app/models/assiduites.py +++ b/app/models/assiduites.py @@ -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, diff --git a/app/templates/assiduites/pages/tableau_actions.j2 b/app/templates/assiduites/pages/tableau_actions.j2 index 436d26b4d7..7ebfe730cb 100644 --- a/app/templates/assiduites/pages/tableau_actions.j2 +++ b/app/templates/assiduites/pages/tableau_actions.j2 @@ -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 %}

@@ -24,4 +24,4 @@ }) -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/app/templates/assiduites/widgets/tableau_actions/modifier.j2 b/app/templates/assiduites/widgets/tableau_actions/modifier.j2 index d76e38dbad..18f6305dae 100644 --- a/app/templates/assiduites/widgets/tableau_actions/modifier.j2 +++ b/app/templates/assiduites/widgets/tableau_actions/modifier.j2 @@ -1,4 +1,8 @@ -

Modifier {{type}}

+

Modifier {{objet_name}} de {{ etud.html_link_fiche() | safe }}

+ +
+Actuellement noté{{etud.e}} en {{objet_name|lower()}} du {{objet.date_debut}} au {{objet.date_fin}} +
@@ -104,4 +108,4 @@ cursor: pointer; user-select: none; } - \ No newline at end of file + diff --git a/app/views/assiduites.py b/app/views/assiduites.py index 2f47563e1e..1d30d3c439 100644 --- a/app/views/assiduites.py +++ b/app/views/assiduites.py @@ -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"] = (