From 5e39b3ae44e26dcc993d65a7d01f5f880fca3770 Mon Sep 17 00:00:00 2001 From: Emmanuel Viennet Date: Fri, 22 Dec 2023 15:18:20 +0100 Subject: [PATCH] =?UTF-8?q?Diverses=20petites=20am=C3=A9liorations=20du=20?= =?UTF-8?q?code?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/__init__.py | 2 +- app/api/jury.py | 5 +++++ app/scodoc/sco_exceptions.py | 8 ++++---- app/scodoc/sco_utils.py | 5 +++++ app/static/js/scodoc.js | 2 +- tests/unit/test_sco_basic.py | 8 ++++---- tools/fakedatabase/create_test_api_database.py | 6 +++--- 7 files changed, 23 insertions(+), 13 deletions(-) diff --git a/app/api/__init__.py b/app/api/__init__.py index b94cf855d..a46d08896 100644 --- a/app/api/__init__.py +++ b/app/api/__init__.py @@ -52,7 +52,7 @@ def get_model_api_object(model_cls: db.Model, model_id: int, join_cls: db.Model """ Retourne une réponse contenant la représentation api de l'objet "Model[model_id]" - Filtrage du département en fonction d'une classe de jointure (eg: Identite, Formsemstre) -> join_cls + Filtrage du département en fonction d'une classe de jointure (eg: Identite, Formsemestre) -> join_cls exemple d'utilisation : fonction "justificatif()" -> app/api/justificatifs.py """ diff --git a/app/api/jury.py b/app/api/jury.py index a48b6357a..f6d140d90 100644 --- a/app/api/jury.py +++ b/app/api/jury.py @@ -49,6 +49,11 @@ def decisions_jury(formsemestre_id: int): """Décisions du jury des étudiants du formsemestre.""" # APC, pair: formsemestre: FormSemestre = db.session.get(FormSemestre, formsemestre_id) + if formsemestre is None: + return json_error( + 404, + message="formsemestre inconnu", + ) if formsemestre.formation.is_apc(): app.set_sco_dept(formsemestre.departement.acronym) rows = jury_but_results.get_jury_but_results(formsemestre) diff --git a/app/scodoc/sco_exceptions.py b/app/scodoc/sco_exceptions.py index 4d57293c9..4fdc53c93 100644 --- a/app/scodoc/sco_exceptions.py +++ b/app/scodoc/sco_exceptions.py @@ -102,7 +102,7 @@ class ScoPDFFormatError(ScoValueError): super().__init__( f"""Erreur dans un format pdf:

{msg}

-

Vérifiez les paramètres (polices de caractères, balisage) +

Vérifiez les paramètres (polices de caractères, balisage) dans les paramètres ou préférences.

""", @@ -146,8 +146,8 @@ class ScoNonEmptyFormationObject(ScoValueError): def __init__(self, type_objet="objet'", msg="", dest_url=None): msg = f"""

{type_objet} "{msg}" utilisé(e) dans des semestres: suppression impossible.

-

Il faut d'abord supprimer le semestre (ou en retirer ce {type_objet}). - Mais il est peut-être préférable de laisser ce programme intact et d'en créer une +

Il faut d'abord supprimer le semestre (ou en retirer ce {type_objet}). + Mais il est peut-être préférable de laisser ce programme intact et d'en créer une nouvelle version pour la modifier sans affecter les semestres déjà en place.

""" @@ -164,7 +164,7 @@ class ScoInvalidIdType(ScoValueError): msg = f"""

Adresse de page invalide

- Vous utilisez un lien invalide, qui correspond probablement + Vous utilisez un lien invalide, qui correspond probablement à une ancienne version du logiciel.
Au besoin, mettre à jour vos marque-pages.

diff --git a/app/scodoc/sco_utils.py b/app/scodoc/sco_utils.py index 32550acc1..e7ad246b3 100644 --- a/app/scodoc/sco_utils.py +++ b/app/scodoc/sco_utils.py @@ -232,6 +232,11 @@ class EtatJustificatif(int, BiDirectionalEnum): EtatJustificatif.NON_VALIDE: "invalide", }.get(self, "") + @classmethod + def is_valid_etat(cls, etat: int) -> bool: + "True if etat is valid" + return etat in cls._value2member_map_ + def is_iso_formated(date: str, convert=False) -> bool or datetime.datetime or None: """ diff --git a/app/static/js/scodoc.js b/app/static/js/scodoc.js index 4050ff689..0cb83e4cb 100644 --- a/app/static/js/scodoc.js +++ b/app/static/js/scodoc.js @@ -132,7 +132,7 @@ function sco_message(msg, className = "message_custom", duration = 0) { if (duration) { setTimeout(() => { div.remove(); - }, 8000); + }, duration); } } diff --git a/tests/unit/test_sco_basic.py b/tests/unit/test_sco_basic.py index afebd819d..ca0c6326b 100644 --- a/tests/unit/test_sco_basic.py +++ b/tests/unit/test_sco_basic.py @@ -4,7 +4,7 @@ """Test de base de ScoDoc -Utiliser comme: +Utiliser comme: pytest tests/unit/test_sco_basic.py Au besoin, créer un base de test neuve: @@ -259,9 +259,9 @@ def _signal_absences_justificatifs(etudid: int): ) db.session.commit() justif: Justificatif = Justificatif.create_justificatif( - etud=etud, - date_debut=localize_datetime(datetime.datetime(2020, 1, 17, 8, 0)), - date_fin=localize_datetime(datetime.datetime(2020, 1, 17, 18, 0)), + etud, + localize_datetime(datetime.datetime(2020, 1, 17, 8, 0)), + localize_datetime(datetime.datetime(2020, 1, 17, 18, 0)), etat=EtatJustificatif.VALIDE, ) db.session.add(justif) diff --git a/tools/fakedatabase/create_test_api_database.py b/tools/fakedatabase/create_test_api_database.py index 9c23611cc..cdbf6590b 100644 --- a/tools/fakedatabase/create_test_api_database.py +++ b/tools/fakedatabase/create_test_api_database.py @@ -414,9 +414,9 @@ def ajouter_assiduites_justificatifs(formsemestre: FormSemestre): raison = random.choice(["raison", None]) code = Justificatif.create_justificatif( - etud=etud, - date_debut=deb_date, - date_fin=fin_date, + etud, + deb_date, + fin_date, etat=etat, raison=raison, )