From 2873253cb4fe646a99bb1f51b4e43e520a2a8dfb Mon Sep 17 00:00:00 2001 From: Emmanuel Viennet Date: Wed, 26 Jul 2023 16:00:23 +0200 Subject: [PATCH] Log modifs justificatifs --- app/api/assiduites.py | 6 +++--- app/models/assiduites.py | 20 +++++++++++++++++++- app/scodoc/sco_groups_view.py | 4 ++-- app/static/css/scodoc.css | 2 +- app/views/assiduites.py | 1 - 5 files changed, 25 insertions(+), 8 deletions(-) diff --git a/app/api/assiduites.py b/app/api/assiduites.py index 0e3fc6e5..a618a0ed 100644 --- a/app/api/assiduites.py +++ b/app/api/assiduites.py @@ -557,7 +557,7 @@ def _delete_singular(assiduite_id: int, database): if assiduite_unique is None: return (404, "Assiduite non existante") ass_dict = assiduite_unique.to_dict() - log(f"delete_assiduite: {assiduite_unique}") + log(f"delete_assiduite: {assiduite_unique.etudiant.id} {assiduite_unique}") Scolog.logdb( method="delete_assiduite", etudid=assiduite_unique.etudiant.id, @@ -637,7 +637,7 @@ def assiduite_edit(assiduite_id: int): err: str = ", ".join(errors) return json_error(404, err) - log(f"assiduite_edit: {assiduite_unique}") + log(f"assiduite_edit: {assiduite_unique.etudiant.id} {assiduite_unique}") Scolog.logdb( "assiduite_edit", assiduite_unique.etudiant.id, @@ -743,7 +743,7 @@ def _edit_singular(assiduite_unique, data): err: str = ", ".join(errors) return (404, err) - log(f"_edit_singular: {assiduite_unique}") + log(f"_edit_singular: {assiduite_unique.etudiant.id} {assiduite_unique}") Scolog.logdb( "assiduite_edit", assiduite_unique.etudiant.id, diff --git a/app/models/assiduites.py b/app/models/assiduites.py index dd1910f3..9405627f 100644 --- a/app/models/assiduites.py +++ b/app/models/assiduites.py @@ -148,7 +148,7 @@ class Assiduite(db.Model): est_just=est_just, ) - log(f"create_assiduite: {nouv_assiduite}") + log(f"create_assiduite: {etud.id} {nouv_assiduite}") Scolog.logdb( method="create_assiduite", etudid=etud.id, @@ -230,6 +230,18 @@ class Justificatif(db.Model): } return data + def __str__(self) -> str: + "chaine pour journaux et debug (lisible par humain français)" + try: + etat_str = EtatJustificatif(self.etat).name + except ValueError: + etat_str = "Invalide" + return f"""Justificatif {etat_str} de { + self.date_debut.strftime("%d/%m/%Y %Hh%M") + } à { + self.date_fin.strftime("%d/%m/%Y %Hh%M") + }""" + @classmethod def create_justificatif( cls, @@ -251,6 +263,12 @@ class Justificatif(db.Model): entry_date=entry_date, user_id=user_id, ) + log(f"create_justificatif: {etud.id} {nouv_justificatif}") + Scolog.logdb( + method="create_justificatif", + etudid=etud.id, + msg=f"justificatif: {nouv_justificatif}", + ) return nouv_justificatif diff --git a/app/scodoc/sco_groups_view.py b/app/scodoc/sco_groups_view.py index 8dbd2059..6b534f0e 100644 --- a/app/scodoc/sco_groups_view.py +++ b/app/scodoc/sco_groups_view.py @@ -287,7 +287,7 @@ if (group_id) { return "\n".join(H) -class DisplayedGroupsInfos(object): +class DisplayedGroupsInfos: """Container with attributes describing groups to display in the page .groups_query_args : 'group_ids=xxx&group_ids=yyy' .base_url : url de la requete, avec les groupes, sans les autres paramètres @@ -348,7 +348,7 @@ class DisplayedGroupsInfos(object): self.tous_les_etuds_du_sem = ( False # affiche tous les etuds du semestre ? (si un seul semestre) ) - self.sems = collections.OrderedDict() # formsemestre_id : sem + self.sems = {} # formsemestre_id : sem self.formsemestre = None self.formsemestre_id = formsemestre_id self.nbdem = 0 # nombre d'étudiants démissionnaires en tout diff --git a/app/static/css/scodoc.css b/app/static/css/scodoc.css index 9a4f08f4..0a64032f 100644 --- a/app/static/css/scodoc.css +++ b/app/static/css/scodoc.css @@ -1333,7 +1333,7 @@ table.gt_table tr.etuddem td a { } table.gt_table tr.etuddem td.etudinfo:first-child::after { color: red; - content: " (dem.)"; + content: " (dém.)"; } td.etudabs, diff --git a/app/views/assiduites.py b/app/views/assiduites.py index a42b5f05..ef8e0978 100644 --- a/app/views/assiduites.py +++ b/app/views/assiduites.py @@ -466,7 +466,6 @@ def signal_assiduites_group(): groups_infos = sco_groups_view.DisplayedGroupsInfos( group_ids, moduleimpl_id=moduleimpl_id, formsemestre_id=formsemestre_id ) - if not groups_infos.members: return ( html_sco_header.sco_header(page_title="Saisie journalière des Assiduités")