diff --git a/app/api/assiduites.py b/app/api/assiduites.py index 041bb9a0..dd2be3c9 100644 --- a/app/api/assiduites.py +++ b/app/api/assiduites.py @@ -1035,6 +1035,15 @@ def _filter_manager(requested, assiduites_query: Query) -> Query: if order is not None: assiduites_query: Query = assiduites_query.order_by(Assiduite.date_debut.desc()) + courant = requested.args.get("courant", None) + if courant is not None: + annee: int = scu.annee_scolaire() + + assiduites_query: Query = assiduites_query.filter( + Assiduite.date_debut >= scu.date_debut_anne_scolaire(annee), + Assiduite.date_fin <= scu.date_fin_anne_scolaire(annee), + ) + return assiduites_query diff --git a/app/api/justificatifs.py b/app/api/justificatifs.py index 3a2977d0..9c1fd001 100644 --- a/app/api/justificatifs.py +++ b/app/api/justificatifs.py @@ -702,4 +702,13 @@ def _filter_manager(requested, justificatifs_query): Justificatif.date_debut.desc() ) + courant = requested.args.get("courant", None) + if courant is not None: + annee: int = scu.annee_scolaire() + + justificatifs_query: Query = justificatifs_query.filter( + Justificatif.date_debut >= scu.date_debut_anne_scolaire(annee), + Justificatif.date_fin <= scu.date_fin_anne_scolaire(annee), + ) + return justificatifs_query diff --git a/app/scodoc/sco_preferences.py b/app/scodoc/sco_preferences.py index e7514ed8..d3cd1d6b 100644 --- a/app/scodoc/sco_preferences.py +++ b/app/scodoc/sco_preferences.py @@ -610,6 +610,17 @@ class BasePreferences: }, ), # Assiduités + ( + "assi_limit_annee", + { + "initvalue": 1, + "title": "Ne lister que les assiduités de l'année", + "explanation": "Limite l'affichage des listes d'assiduités et de justificatifs à l'année en cours", + "input_type": "boolcheckbox", + "labels": ["non", "oui"], + "category": "assi", + }, + ), ( "forcer_module", { diff --git a/app/static/js/assiduites.js b/app/static/js/assiduites.js index 1456f671..019cb894 100644 --- a/app/static/js/assiduites.js +++ b/app/static/js/assiduites.js @@ -1069,12 +1069,17 @@ function getAllAssiduitesFromEtud( etudid, action, order = false, - justifs = false + justifs = false, + courant = false ) { const url_api = getUrl() + `/api/assiduites/${etudid}${ - order ? "/query?order%".replace("%", justifs ? "&with_justifs" : "") : "" + order + ? "/query?order%°" + .replace("%", justifs ? "&with_justifs" : "") + .replace("°", courant ? "&courant" : "") + : "" }`; $.ajax({ @@ -1639,9 +1644,17 @@ function createJustificatif(justif, success = () => {}) { }); } -function getAllJustificatifsFromEtud(etudid, action, order = false) { +function getAllJustificatifsFromEtud( + etudid, + action, + order = false, + courant = false +) { const url_api = - getUrl() + `/api/justificatifs/${etudid}${order ? "/query?order" : ""}`; + getUrl() + + `/api/justificatifs/${etudid}${ + order ? "/query?order°".replace("°", courant ? "&courant" : "") : "" + }`; $.ajax({ async: true, type: "GET", diff --git a/app/templates/assiduites/pages/ajout_justificatif.j2 b/app/templates/assiduites/pages/ajout_justificatif.j2 index 4cbc8f59..878d2fa0 100644 --- a/app/templates/assiduites/pages/ajout_justificatif.j2 +++ b/app/templates/assiduites/pages/ajout_justificatif.j2 @@ -221,6 +221,9 @@ const etudid = {{ sco.etud.id }}; + + const assi_limit_annee = "{{ assi_limit_annee }}" == "True" ? true : false; + window.onload = () => { loadAll(); } diff --git a/app/templates/assiduites/pages/bilan_dept.j2 b/app/templates/assiduites/pages/bilan_dept.j2 index aea0bb8b..2e8ca5be 100644 --- a/app/templates/assiduites/pages/bilan_dept.j2 +++ b/app/templates/assiduites/pages/bilan_dept.j2 @@ -29,6 +29,7 @@