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]"
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
"""

View File

@ -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)

View File

@ -102,7 +102,7 @@ class ScoPDFFormatError(ScoValueError):
super().__init__(
f"""Erreur dans un format pdf:
<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.
</p>
""",
@ -146,8 +146,8 @@ class ScoNonEmptyFormationObject(ScoValueError):
def __init__(self, type_objet="objet'", msg="", dest_url=None):
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}).
Mais il est peut-être préférable de laisser ce programme intact et d'en créer une
<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
nouvelle version pour la modifier sans affecter les semestres déjà en place.
</p>
"""
@ -164,7 +164,7 @@ class ScoInvalidIdType(ScoValueError):
msg = f"""<h3>Adresse de page invalide</h3>
<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>
Au besoin, mettre à jour vos marque-pages.
</p>

View File

@ -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:
"""

View File

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

View File

@ -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)

View File

@ -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,
)