1
0
forked from ScoDoc/ScoDoc

Diverses petites améliorations du code

This commit is contained in:
Emmanuel Viennet 2023-12-22 15:18:20 +01:00
parent 79c6a03c26
commit 5e39b3ae44
7 changed files with 23 additions and 13 deletions

View File

@ -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]" 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 exemple d'utilisation : fonction "justificatif()" -> app/api/justificatifs.py
""" """

View File

@ -49,6 +49,11 @@ def decisions_jury(formsemestre_id: int):
"""Décisions du jury des étudiants du formsemestre.""" """Décisions du jury des étudiants du formsemestre."""
# APC, pair: # APC, pair:
formsemestre: FormSemestre = db.session.get(FormSemestre, formsemestre_id) formsemestre: FormSemestre = db.session.get(FormSemestre, formsemestre_id)
if formsemestre is None:
return json_error(
404,
message="formsemestre inconnu",
)
if formsemestre.formation.is_apc(): if formsemestre.formation.is_apc():
app.set_sco_dept(formsemestre.departement.acronym) app.set_sco_dept(formsemestre.departement.acronym)
rows = jury_but_results.get_jury_but_results(formsemestre) rows = jury_but_results.get_jury_but_results(formsemestre)

View File

@ -102,7 +102,7 @@ class ScoPDFFormatError(ScoValueError):
super().__init__( super().__init__(
f"""Erreur dans un format pdf: f"""Erreur dans un format pdf:
<p>{msg}</p> <p>{msg}</p>
<p>Vérifiez les paramètres (polices de caractères, balisage) <p>Vérifiez les paramètres (polices de caractères, balisage)
dans les paramètres ou préférences. dans les paramètres ou préférences.
</p> </p>
""", """,
@ -146,8 +146,8 @@ class ScoNonEmptyFormationObject(ScoValueError):
def __init__(self, type_objet="objet'", msg="", dest_url=None): def __init__(self, type_objet="objet'", msg="", dest_url=None):
msg = f"""<h3>{type_objet} "{msg}" utilisé(e) dans des semestres: suppression impossible.</h3> msg = f"""<h3>{type_objet} "{msg}" utilisé(e) dans des semestres: suppression impossible.</h3>
<p class="help">Il faut d'abord supprimer le semestre (ou en retirer ce {type_objet}). <p class="help">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 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. nouvelle version pour la modifier sans affecter les semestres déjà en place.
</p> </p>
""" """
@ -164,7 +164,7 @@ class ScoInvalidIdType(ScoValueError):
msg = f"""<h3>Adresse de page invalide</h3> msg = f"""<h3>Adresse de page invalide</h3>
<p class="help"> <p class="help">
Vous utilisez un lien invalide, qui correspond probablement Vous utilisez un lien invalide, qui correspond probablement
à une ancienne version du logiciel. <br> à une ancienne version du logiciel. <br>
Au besoin, mettre à jour vos marque-pages. Au besoin, mettre à jour vos marque-pages.
</p> </p>

View File

@ -232,6 +232,11 @@ class EtatJustificatif(int, BiDirectionalEnum):
EtatJustificatif.NON_VALIDE: "invalide", EtatJustificatif.NON_VALIDE: "invalide",
}.get(self, "") }.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: def is_iso_formated(date: str, convert=False) -> bool or datetime.datetime or None:
""" """

View File

@ -132,7 +132,7 @@ function sco_message(msg, className = "message_custom", duration = 0) {
if (duration) { if (duration) {
setTimeout(() => { setTimeout(() => {
div.remove(); div.remove();
}, 8000); }, duration);
} }
} }

View File

@ -4,7 +4,7 @@
"""Test de base de ScoDoc """Test de base de ScoDoc
Utiliser comme: Utiliser comme:
pytest tests/unit/test_sco_basic.py pytest tests/unit/test_sco_basic.py
Au besoin, créer un base de test neuve: Au besoin, créer un base de test neuve:
@ -259,9 +259,9 @@ def _signal_absences_justificatifs(etudid: int):
) )
db.session.commit() db.session.commit()
justif: Justificatif = Justificatif.create_justificatif( justif: Justificatif = Justificatif.create_justificatif(
etud=etud, etud,
date_debut=localize_datetime(datetime.datetime(2020, 1, 17, 8, 0)), localize_datetime(datetime.datetime(2020, 1, 17, 8, 0)),
date_fin=localize_datetime(datetime.datetime(2020, 1, 17, 18, 0)), localize_datetime(datetime.datetime(2020, 1, 17, 18, 0)),
etat=EtatJustificatif.VALIDE, etat=EtatJustificatif.VALIDE,
) )
db.session.add(justif) db.session.add(justif)

View File

@ -414,9 +414,9 @@ def ajouter_assiduites_justificatifs(formsemestre: FormSemestre):
raison = random.choice(["raison", None]) raison = random.choice(["raison", None])
code = Justificatif.create_justificatif( code = Justificatif.create_justificatif(
etud=etud, etud,
date_debut=deb_date, deb_date,
date_fin=fin_date, fin_date,
etat=etat, etat=etat,
raison=raison, raison=raison,
) )