From 2a239ab92f49fc2fe57a57a5821338cfc898dd3e Mon Sep 17 00:00:00 2001 From: Emmanuel Viennet Date: Mon, 22 Jan 2024 17:01:01 +0100 Subject: [PATCH] Assiduites: 3 bugs --- app/models/assiduites.py | 6 ++++-- .../assiduites/pages/ajout_justificatif_etud.j2 | 3 ++- app/views/assiduites.py | 11 ++++++----- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/app/models/assiduites.py b/app/models/assiduites.py index b4087e4ee..620b2758d 100644 --- a/app/models/assiduites.py +++ b/app/models/assiduites.py @@ -2,8 +2,10 @@ """Gestion de l'assiduité (assiduités + justificatifs) """ from datetime import datetime + from flask_login import current_user from flask_sqlalchemy.query import Query +from psycopg2.errors import InvalidTextRepresentation # c'est ok from sqlalchemy.exc import DataError from app import db, log, g, set_sco_dept @@ -285,11 +287,11 @@ class Assiduite(ScoDocModel): else: raise ScoValueError("L'étudiant n'est pas inscrit au module") - except DataError: + except (DataError, InvalidTextRepresentation) as exc: # On arrive ici si moduleimpl_id == "autre" ou moduleimpl_id == non parsé if moduleimpl_id != "autre": - raise ScoValueError("Module non reconnu") + raise ScoValueError("Module non reconnu") from exc # Configuration de external_data pour Module Autre # Si self.external_data None alors on créé un dictionnaire {"module": "autre"} diff --git a/app/templates/assiduites/pages/ajout_justificatif_etud.j2 b/app/templates/assiduites/pages/ajout_justificatif_etud.j2 index 27349ba55..3aee67d09 100644 --- a/app/templates/assiduites/pages/ajout_justificatif_etud.j2 +++ b/app/templates/assiduites/pages/ajout_justificatif_etud.j2 @@ -47,7 +47,8 @@ div.submit > input { {% if justif %}
- Saisie par {{justif.user.get_prenomnom()}} le {{justif.entry_date.strftime("%d/%m/%Y à %H:%M")}} + Saisie par {{justif.user.get_prenomnom() if justif.user else "inconnu"}} + le {{justif.entry_date.strftime("%d/%m/%Y à %H:%M") if justif.entry_date else "?"}}
{% endif %} diff --git a/app/views/assiduites.py b/app/views/assiduites.py index 8e58de88b..07d8a6919 100644 --- a/app/views/assiduites.py +++ b/app/views/assiduites.py @@ -1247,11 +1247,12 @@ def etat_abs_date(): # On récupère l'état de la première assiduité sur la période assi = assiduites.filter_by(etudid=etud.id).first() etat = "" - if assi is not None and assi.etat != scu.EtatAssiduite.PRESENT: - etat = scu.EtatAssiduite.inverse().get(assi.etat).name - row = table.row_class(table, etud, etat, assi.est_just) - row.add_etud_cols() - table.add_row(row) + if assi is not None: + if assi.etat != scu.EtatAssiduite.PRESENT: + etat = scu.EtatAssiduite.inverse().get(assi.etat).name + row = table.row_class(table, etud, etat, assi.est_just) + row.add_etud_cols() + table.add_row(row) if fmt.startswith("xls"): return scu.send_file(