diff --git a/app/tables/liste_assiduites.py b/app/tables/liste_assiduites.py
index 7b0204b92..ea808c53f 100644
--- a/app/tables/liste_assiduites.py
+++ b/app/tables/liste_assiduites.py
@@ -168,9 +168,11 @@ class ListeAssiJusti(tb.Table):
self.options.show_desc,
self.options.order[0],
self.options.order[1],
+ self.options.moduleimpl_id,
],
)
)
+
r = RequeteTableauAssiduiteCache().get(cle_cache)
if r is None:
@@ -194,6 +196,15 @@ class ListeAssiJusti(tb.Table):
Assiduite.etat != EtatAssiduite.RETARD
)
+ # Filtrage par moduleimpl_id
+ if (
+ self.options.moduleimpl_id is not None
+ and assiduites_query_etudiants is not None
+ ):
+ assiduites_query_etudiants = assiduites_query_etudiants.filter(
+ Assiduite.moduleimpl_id == self.options.moduleimpl_id
+ )
+
if type_obj in [0, 2]:
justificatifs_query_etudiants = self.table_data.justificatifs_query
@@ -497,8 +508,7 @@ class RowAssiJusti(tb.Row):
}
)
# Ajout de l'étudid dans la version excel
- if self.table.no_pagination:
- self.add_cell("etudid", "Etudid", etud.id)
+ self.add_cell("etudid", "Etudid", etud.id, only_excel=True)
# Ajout des informations de l'étudiant
@@ -544,45 +554,56 @@ class RowAssiJusti(tb.Row):
if self.table.options.show_module:
if self.ligne["type"] == "assiduite":
assi: Assiduite = Assiduite.query.get(self.ligne["obj_id"])
- if self.table.no_pagination:
- mod: Module = assi.get_module(False)
- code = mod.code if isinstance(mod, Module) else ""
- titre = ""
- if isinstance(mod, Module):
- titre = mod.titre
- elif isinstance(mod, str):
- titre = mod
- else:
- titre = "Non Spécifié"
+ # Gestion des colonnes concernant le module
+ mod: Module = assi.get_module(False)
+ code = mod.code if isinstance(mod, Module) else ""
+ titre = ""
+ if isinstance(mod, Module):
+ titre = mod.titre
+ elif isinstance(mod, str):
+ titre = mod
+ else:
+ titre = "Non Spécifié"
- self.add_cell(
- "code_module", "Code Module", code, data={"order": code}
- )
- self.add_cell(
- "titre_module",
- "Titre Module",
- titre,
- data={"order": titre},
- )
- else:
- mod: Module = assi.get_module(True)
- self.add_cell(
- "module",
- "Module",
- mod,
- data={"order": mod},
- )
+ self.add_cell(
+ "code_module",
+ "Code Module",
+ code,
+ data={"order": code},
+ only_excel=True,
+ )
+ self.add_cell(
+ "titre_module",
+ "Titre Module",
+ titre,
+ data={"order": titre},
+ only_excel=True,
+ )
+
+ mod: Module = assi.get_module(True)
+ self.add_cell(
+ "module",
+ "Module",
+ mod,
+ data={"order": mod},
+ no_excel=True,
+ )
else:
- if self.table.no_pagination:
- self.add_cell("module", "Module", "", data={"order": ""})
- else:
- self.add_cell("code_module", "Code Module", "", data={"order": ""})
- self.add_cell(
- "titre_module",
- "Titre Module",
- "",
- data={"order": ""},
- )
+ self.add_cell("module", "Module", "", data={"order": ""}, no_excel=True)
+ self.add_cell(
+ "code_module",
+ "Code Module",
+ "",
+ data={"order": ""},
+ only_excel=True,
+ )
+ self.add_cell(
+ "titre_module",
+ "Titre Module",
+ "",
+ data={"order": ""},
+ only_excel=True,
+ )
def _utilisateur(self) -> None:
utilisateur: User = (
@@ -764,6 +785,7 @@ class AssiDisplayOptions:
show_module: str | bool = False,
order: tuple[str, str | bool] = None,
annee_sco: int = None,
+ moduleimpl_id: int = None,
):
self.page: int = page
self.nb_ligne_page: int = nb_ligne_page
@@ -778,6 +800,7 @@ class AssiDisplayOptions:
self.show_module = to_bool(show_module)
self.annee_sco: int | None = annee_sco
+ self.moduleimpl_id: int | None = moduleimpl_id
self.order = (
("date_debut", False) if order is None else (order[0], to_bool(order[1]))
diff --git a/app/templates/assiduites/widgets/moduleimpl_selector_multiple.j2 b/app/templates/assiduites/widgets/moduleimpl_selector_multiple.j2
index db77984f1..1a0a8b974 100644
--- a/app/templates/assiduites/widgets/moduleimpl_selector_multiple.j2
+++ b/app/templates/assiduites/widgets/moduleimpl_selector_multiple.j2
@@ -1,8 +1,12 @@
+ {% if moduleimpl_select %}
+
+ {% endif %}
+