diff --git a/app/api/justificatifs.py b/app/api/justificatifs.py
index d9e66a527..e5bdab494 100644
--- a/app/api/justificatifs.py
+++ b/app/api/justificatifs.py
@@ -195,7 +195,7 @@ def justificatifs_dept(dept_id: int = None, with_query: bool = False):
"""
# Récupération du département et des étudiants du département
- dept: Departement = Departement.query.get(dept_id)
+ dept: Departement = db.session.get(Departement, dept_id)
if dept is None:
return json_error(404, "Assiduité non existante")
etuds: list[int] = [etud.id for etud in dept.etudiants]
diff --git a/app/but/change_refcomp.py b/app/but/change_refcomp.py
index dc91d717b..4f4a8e23f 100644
--- a/app/but/change_refcomp.py
+++ b/app/but/change_refcomp.py
@@ -44,7 +44,9 @@ def formation_change_referentiel(
ue.niveau_competence_id = niveaux_map[ue.niveau_competence_id]
db.session.add(ue)
if ue.parcours:
- new_list = [ApcParcours.query.get(parcours_map[p.id]) for p in ue.parcours]
+ new_list = [
+ db.session.get(ApcParcours, parcours_map[p.id]) for p in ue.parcours
+ ]
ue.parcours.clear()
ue.parcours.extend(new_list)
db.session.add(ue)
@@ -52,7 +54,7 @@ def formation_change_referentiel(
for module in formation.modules:
if module.parcours:
new_list = [
- ApcParcours.query.get(parcours_map[p.id]) for p in module.parcours
+ db.session.get(ApcParcours, parcours_map[p.id]) for p in module.parcours
]
module.parcours.clear()
module.parcours.extend(new_list)
@@ -76,7 +78,8 @@ def formation_change_referentiel(
# FormSemestre / parcours_formsemestre
for formsemestre in formation.formsemestres:
new_list = [
- ApcParcours.query.get(parcours_map[p.id]) for p in formsemestre.parcours
+ db.session.get(ApcParcours, parcours_map[p.id])
+ for p in formsemestre.parcours
]
formsemestre.parcours.clear()
formsemestre.parcours.extend(new_list)
diff --git a/app/comp/moy_ue.py b/app/comp/moy_ue.py
index 5e88f29e3..824f01e8d 100644
--- a/app/comp/moy_ue.py
+++ b/app/comp/moy_ue.py
@@ -178,7 +178,7 @@ def notes_sem_assemble_cube(modimpls_notes: list[pd.DataFrame]) -> np.ndarray:
except ValueError:
app.critical_error(
f"""notes_sem_assemble_cube: shapes {
- ", ".join([x.shape for x in modimpls_notes_arr])}"""
+ ", ".join([str(x.shape) for x in modimpls_notes_arr])}"""
)
return modimpls_notes.swapaxes(0, 1)
diff --git a/app/models/assiduites.py b/app/models/assiduites.py
index 679a770c3..7104c86ad 100644
--- a/app/models/assiduites.py
+++ b/app/models/assiduites.py
@@ -297,7 +297,7 @@ class Assiduite(ScoDocModel):
moduleimpl_id = int(moduleimpl_id)
except ValueError as exc:
raise ScoValueError("Module non reconnu") from exc
- moduleimpl: ModuleImpl = ModuleImpl.query.get(moduleimpl_id)
+ moduleimpl: ModuleImpl = db.session.get(ModuleImpl, moduleimpl_id)
# ici moduleimpl est None si non spécifié
@@ -352,8 +352,8 @@ class Assiduite(ScoDocModel):
"""
if self.moduleimpl_id is not None:
- modimpl: ModuleImpl = ModuleImpl.query.get(self.moduleimpl_id)
- mod: Module = Module.query.get(modimpl.module_id)
+ modimpl: ModuleImpl = db.session.get(ModuleImpl, self.moduleimpl_id)
+ mod: Module = db.session.get(Module, modimpl.module_id)
if traduire:
return f"{mod.code} {mod.titre}"
return mod
diff --git a/app/scodoc/sco_formsemestre_inscriptions.py b/app/scodoc/sco_formsemestre_inscriptions.py
index 3a7d095dc..070d373d7 100644
--- a/app/scodoc/sco_formsemestre_inscriptions.py
+++ b/app/scodoc/sco_formsemestre_inscriptions.py
@@ -196,7 +196,7 @@ def check_if_has_decision_jury(
nt: NotesTableCompat = res_sem.load_formsemestre_results(formsemestre)
for etudid in etudids:
if nt.etud_has_decision(etudid):
- etud = Identite.query.get(etudid)
+ etud = db.session.get(Identite, etudid)
raise ScoValueError(
f"""désinscription impossible: l'étudiant {etud.nomprenom} a
une décision de jury (la supprimer avant si nécessaire)"""
diff --git a/app/scodoc/sco_inscr_passage.py b/app/scodoc/sco_inscr_passage.py
index 4d1d31b46..347105f50 100644
--- a/app/scodoc/sco_inscr_passage.py
+++ b/app/scodoc/sco_inscr_passage.py
@@ -376,7 +376,7 @@ def formsemestre_inscr_passage(
if a_desinscrire:
H.append("
Étudiants à désinscrire
")
a_desinscrire_ident = sorted(
- (Identite.query.get(eid) for eid in a_desinscrire),
+ (db.session.get(Identite, eid) for eid in a_desinscrire),
key=lambda x: x.sort_key,
)
for etud in a_desinscrire_ident:
diff --git a/app/scodoc/sco_pv_dict.py b/app/scodoc/sco_pv_dict.py
index fa8429244..b62dd11a5 100644
--- a/app/scodoc/sco_pv_dict.py
+++ b/app/scodoc/sco_pv_dict.py
@@ -292,7 +292,7 @@ def _descr_decisions_ues(nt, etudid, decisions_ue, decision_sem) -> list[dict]:
)
)
):
- ue = UniteEns.query.get(ue_id)
+ ue = db.session.get(UniteEns, ue_id)
assert ue
# note modernisation code: on utilise des dict tant que get_etud_ue_status renvoie des dicts
uelist.append(ue.to_dict())
diff --git a/app/scodoc/sco_saisie_notes.py b/app/scodoc/sco_saisie_notes.py
index ecdf83bb9..4d0ea0174 100644
--- a/app/scodoc/sco_saisie_notes.py
+++ b/app/scodoc/sco_saisie_notes.py
@@ -408,7 +408,7 @@ def _check_inscription(
elif etudid not in etudids_inscrits_mod:
msg_err = "non inscrit au module"
if msg_err:
- etud = Identite.query.get(etudid) if isinstance(etudid, int) else None
+ etud = db.session.get(Identite, etudid) if isinstance(etudid, int) else None
msg = f"étudiant {etud.nomprenom if etud else etudid} {msg_err}"
log(f"notes_add: {etudid} {msg}: aborting")
raise NoteProcessError(msg)
@@ -454,7 +454,7 @@ def notes_add(
if (value is not None) and not isinstance(value, float):
log(f"notes_add: {etudid} valeur de note invalide ({value}): aborting")
- etud = Identite.query.get(etudid) if isinstance(etudid, int) else None
+ etud = db.session.get(Identite, etudid) if isinstance(etudid, int) else None
raise NoteProcessError(
f"etudiant {etud.nomprenom if etud else etudid}: valeur de note invalide ({value})"
)
@@ -491,7 +491,9 @@ def notes_add(
# si change sur DEM/DEF ajoute message warning aux messages
if etudid not in etudids_actifs: # DEM ou DEF
etud = (
- Identite.query.get(etudid) if isinstance(etudid, int) else None
+ db.session.get(Identite, etudid)
+ if isinstance(etudid, int)
+ else None
)
messages.append(
f"""étudiant {etud.nomprenom if etud else etudid
@@ -801,7 +803,7 @@ def get_sorted_etuds_notes(
notes_db[etudid]["value"], fixed_precision_str=False
)
user = (
- User.query.get(notes_db[etudid]["uid"])
+ db.session.get(User, notes_db[etudid]["uid"])
if notes_db[etudid]["uid"]
else None
)
diff --git a/app/scodoc/sco_ue_external.py b/app/scodoc/sco_ue_external.py
index 34bcff770..2ad5b53ae 100644
--- a/app/scodoc/sco_ue_external.py
+++ b/app/scodoc/sco_ue_external.py
@@ -144,7 +144,7 @@ def external_ue_create(
),
},
)
- modimpl = ModuleImpl.query.get(moduleimpl_id)
+ modimpl = db.session.get(ModuleImpl, moduleimpl_id)
assert modimpl
return modimpl
@@ -206,7 +206,7 @@ def get_external_moduleimpl(formsemestre_id: int, ue_id: int) -> ModuleImpl:
)
if r:
modimpl_id = r[0]["moduleimpl_id"]
- modimpl = ModuleImpl.query.get(modimpl_id)
+ modimpl = db.session.get(ModuleImpl, modimpl_id)
assert modimpl
return modimpl
else:
diff --git a/app/tables/liste_assiduites.py b/app/tables/liste_assiduites.py
index ea808c53f..1051a0fb0 100644
--- a/app/tables/liste_assiduites.py
+++ b/app/tables/liste_assiduites.py
@@ -553,7 +553,7 @@ class RowAssiJusti(tb.Row):
)
if self.table.options.show_module:
if self.ligne["type"] == "assiduite":
- assi: Assiduite = Assiduite.query.get(self.ligne["obj_id"])
+ assi: Assiduite = db.session.get(Assiduite, self.ligne["obj_id"])
# Gestion des colonnes concernant le module
mod: Module = assi.get_module(False)
code = mod.code if isinstance(mod, Module) else ""
@@ -607,7 +607,9 @@ class RowAssiJusti(tb.Row):
def _utilisateur(self) -> None:
utilisateur: User = (
- User.query.get(self.ligne["user_id"]) if self.ligne["user_id"] else None
+ db.session.get(User, self.ligne["user_id"])
+ if self.ligne["user_id"] is not None
+ else None
)
self.add_cell(
diff --git a/app/views/assiduites.py b/app/views/assiduites.py
index c1d210ab6..9e4cd77b7 100644
--- a/app/views/assiduites.py
+++ b/app/views/assiduites.py
@@ -24,6 +24,9 @@
#
##############################################################################
+"""Vues assiduité
+"""
+
import datetime
import json
import re
@@ -508,7 +511,7 @@ def _record_assiduite_etud(
case None:
moduleimpl = None
case _:
- moduleimpl = ModuleImpl.query.get(moduleimpl_id)
+ moduleimpl = db.session.get(ModuleImpl, moduleimpl_id)
try:
assi_etat: scu.EtatAssiduite = scu.EtatAssiduite.get(form.assi_etat.data)
@@ -1678,7 +1681,7 @@ def _preparer_objet(
if not sans_gros_objet:
justificatifs: list[int] = get_assiduites_justif(objet.assiduite_id, False)
for justi_id in justificatifs:
- justi: Justificatif = Justificatif.query.get(justi_id)
+ justi: Justificatif = db.session.get(Justificatif, justi_id)
objet_prepare["justification"]["justificatifs"].append(
_preparer_objet("justificatif", justi, sans_gros_objet=True)
)
@@ -1717,7 +1720,7 @@ def _preparer_objet(
objet_prepare["etud_nom"] = objet.etudiant.nomprenom
if objet.user_id is not None:
- user: User = User.query.get(objet.user_id)
+ user: User = db.session.get(User, objet.user_id)
objet_prepare["saisie_par"] = user.get_nomprenom()
else:
objet_prepare["saisie_par"] = "Inconnu"
@@ -2925,7 +2928,7 @@ def _module_selector_multiple(
)
choices = OrderedDict()
for formsemestre_id in modimpls_by_formsemestre:
- formsemestre: FormSemestre = FormSemestre.query.get(formsemestre_id)
+ formsemestre: FormSemestre = db.session.get(FormSemestre, formsemestre_id)
if only_form is not None and formsemestre != only_form:
continue
# indique le nom du semestre dans le menu (optgroup)
diff --git a/app/views/scolar.py b/app/views/scolar.py
index 92a8b1bc7..d5c974462 100644
--- a/app/views/scolar.py
+++ b/app/views/scolar.py
@@ -2112,7 +2112,7 @@ def check_group_apogee(group_id, etat=None, fix=False, fixmail=False):
def export_etudiants_courants():
"""Table export de tous les étudiants des formsemestres en cours."""
fmt = request.args.get("fmt", "html")
- departement = Departement.query.get(g.scodoc_dept_id)
+ departement = db.session.get(Departement, g.scodoc_dept_id)
if not departement:
raise ScoValueError("département invalide")
formsemestres = FormSemestre.get_dept_formsemestres_courants(departement).all()
@@ -2462,7 +2462,7 @@ def formsemestre_import_etud_admission(
Si tous_courants, le fait pour tous les formsemestres courants du département
"""
if tous_courants:
- departement = Departement.query.get(g.scodoc_dept_id)
+ departement = db.session.get(Departement, g.scodoc_dept_id)
formsemestres = FormSemestre.get_dept_formsemestres_courants(departement)
else:
formsemestres = [FormSemestre.get_formsemestre(formsemestre_id)]
@@ -2557,13 +2557,9 @@ def sco_dump_and_send_db(message="", request_url="", traceback_str_base64=""):
try:
r_msg = r.json()["message"]
except (requests.exceptions.JSONDecodeError, KeyError):
- r_msg = "Erreur: code "
- +status_code
- +' Merci de contacter '
- +scu.SCO_DEV_MAIL
- +""
+ r_msg = f"""Erreur: code {status_code}
+ Merci de contacter {scu.SCO_DEV_MAIL}
+ """
H = [html_sco_header.sco_header(page_title="Assistance technique")]
if status_code == requests.codes.OK: # pylint: disable=no-member
diff --git a/app/views/user_board.py b/app/views/user_board.py
index eee48c342..fe3489e41 100644
--- a/app/views/user_board.py
+++ b/app/views/user_board.py
@@ -4,10 +4,10 @@ Tableau de bord utilisateur
Emmanuel Viennet, 2023
"""
-
from flask import flash, redirect, render_template, url_for
from flask import g, request
from flask_login import login_required
+from app import db
from app.auth.models import User
from app.decorators import (
scodoc,
@@ -31,7 +31,8 @@ def user_board(user_name: str):
modimpls_by_formsemestre,
) = FormSemestre.get_user_formsemestres_annee_by_dept(user)
depts = {
- dept_id: Departement.query.get(dept_id) for dept_id in formsemestres_by_dept
+ dept_id: db.session.get(Departement, dept_id)
+ for dept_id in formsemestres_by_dept
}
dept_names = {
dept_id: sco_preferences.get_preference("DeptName", dept_id=dept_id)
diff --git a/tests/unit/test_sco_basic.py b/tests/unit/test_sco_basic.py
index e159391c4..f1d933fdb 100644
--- a/tests/unit/test_sco_basic.py
+++ b/tests/unit/test_sco_basic.py
@@ -250,7 +250,7 @@ def run_sco_basic(verbose=False, dept=None) -> FormSemestre:
def _signal_absences_justificatifs(etudid: int):
- etud: Identite = Identite.query.get(etudid)
+ etud: Identite = db.session.get(Identite, etudid)
db.session.commit()
for i in range(15, 18):
db.session.add(