diff --git a/app/scodoc/sco_preferences.py b/app/scodoc/sco_preferences.py
index abe90f819..ffebb4699 100644
--- a/app/scodoc/sco_preferences.py
+++ b/app/scodoc/sco_preferences.py
@@ -600,17 +600,6 @@ class BasePreferences:
},
),
# Assiduité
- (
- "assi_limit_annee",
- {
- "initvalue": 1,
- "title": "Ne lister que l'assiduité de l'année",
- "explanation": "Limite l'affichage des listes d'assiduité et de justificatifs à l'année en cours",
- "input_type": "boolcheckbox",
- "labels": ["non", "oui"],
- "category": "assi",
- },
- ),
(
"forcer_module",
{
diff --git a/app/tables/liste_assiduites.py b/app/tables/liste_assiduites.py
index d30c6348a..19316bd3f 100644
--- a/app/tables/liste_assiduites.py
+++ b/app/tables/liste_assiduites.py
@@ -24,7 +24,6 @@ from app.scodoc.sco_utils import (
from app.tables import table_builder as tb
from app.scodoc.sco_cache import RequeteTableauAssiduiteCache
from app.scodoc.sco_permissions import Permission
-from app.scodoc.sco_preferences import get_preference
class Pagination:
@@ -212,10 +211,16 @@ class ListeAssiJusti(tb.Table):
r = query_finale.all()
RequeteTableauAssiduiteCache.set(cle_cache, r)
- # Filtrer Si préférence "Limiter les assiduités à l'année courante"
- if get_preference("assi_limit_annee"):
- annee_debut = localize_datetime(date_debut_annee_scolaire())
- annee_fin = localize_datetime(date_fin_annee_scolaire())
+ # Filtrage des objets en fonction de self.options.annee
+ # Si None -> année courante
+ # Sinon -> année donnée
+ # Si err (non int) -> année courante
+ # Si -1 -> afficher tout
+
+ annee: int | None = self.options.annee_sco
+ if annee != -1:
+ annee_debut = localize_datetime(date_debut_annee_scolaire(annee_sco=annee))
+ annee_fin = localize_datetime(date_fin_annee_scolaire(annee_sco=annee))
r = [
obj
for obj in r
@@ -767,6 +772,7 @@ class AssiDisplayOptions:
show_actions: str | bool = True,
show_module: str | bool = False,
order: tuple[str, str | bool] = None,
+ annee_sco: int = None,
):
self.page: int = page
self.nb_ligne_page: int = nb_ligne_page
@@ -780,6 +786,8 @@ class AssiDisplayOptions:
self.show_actions = to_bool(show_actions)
self.show_module = to_bool(show_module)
+ self.annee_sco: int | None = annee_sco
+
self.order = (
("date_debut", False) if order is None else (order[0], to_bool(order[1]))
)
@@ -789,7 +797,7 @@ class AssiDisplayOptions:
for k, v in kwargs.items():
if k.startswith("show_"):
setattr(self, k, to_bool(v))
- elif k in ["page", "nb_ligne_page"]:
+ elif k in ("page", "nb_ligne_page"):
setattr(self, k, int(v))
if k == "nb_ligne_page":
self.nb_ligne_page = min(
@@ -801,6 +809,8 @@ class AssiDisplayOptions:
k,
("date_debut", False) if v is None else (v[0], to_bool(v[1])),
)
+ else:
+ setattr(self, k, v)
class AssiJustifData:
diff --git a/app/templates/assiduites/pages/bilan_etud.j2 b/app/templates/assiduites/pages/bilan_etud.j2
index 4dcfbb391..fb586556b 100644
--- a/app/templates/assiduites/pages/bilan_etud.j2
+++ b/app/templates/assiduites/pages/bilan_etud.j2
@@ -218,9 +218,6 @@ Bilan assiduité de {{sco.etud.nomprenom}}
const assi_date_debut = "{{date_debut}}";
const assi_date_fin = "{{date_fin}}";
- const assi_limit_annee = "{{ assi_limit_annee }}" == "True" ? true : false;
-
-
window.addEventListener('load', () => {
document.getElementById('stats_date_fin').value = assi_date_fin;
document.getElementById('stats_date_debut').value = assi_date_debut;
diff --git a/app/templates/assiduites/widgets/tableau.j2 b/app/templates/assiduites/widgets/tableau.j2
index b84dc8c95..1517ebcb9 100644
--- a/app/templates/assiduites/widgets/tableau.j2
+++ b/app/templates/assiduites/widgets/tableau.j2
@@ -27,9 +27,23 @@
{% endif %}
{% endfor %}
+
+
-