forked from ScoDoc/ScoDoc
Assiduité : signal_assiduites_diff : plage depuis args url closes #741
This commit is contained in:
parent
7322cc5b56
commit
63f21c2dd6
@ -525,12 +525,29 @@ if (window.forceModule) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const defaultPlage = {{ nouv_plage | safe}} || [];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fonction exécutée au lancement de la page
|
* Fonction exécutée au lancement de la page
|
||||||
* - On affiche ou non les photos des étudiants
|
* - On affiche ou non les photos des étudiants
|
||||||
* - On vérifie si la date est un jour travaillé
|
* - On vérifie si la date est un jour travaillé
|
||||||
*/
|
*/
|
||||||
async function main() {
|
async function main() {
|
||||||
|
|
||||||
|
// On initialise les sélecteurs avec les valeurs par défaut (si elles existent)
|
||||||
|
if (defaultPlage.every((e) => e)) {
|
||||||
|
$("#date").datepicker("setDate", defaultPlage[0]);
|
||||||
|
$("#debut").val(defaultPlage[1]);
|
||||||
|
$("#fin").val(defaultPlage[2]);
|
||||||
|
|
||||||
|
// On ajoute la période si la date est un jour travaillé
|
||||||
|
if(dateCouranteEstTravaillee()){
|
||||||
|
await nouvellePeriode();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
const checked = localStorage.getItem("scodoc-etud-pdp") == "true";
|
const checked = localStorage.getItem("scodoc-etud-pdp") == "true";
|
||||||
afficherPDP(checked);
|
afficherPDP(checked);
|
||||||
$("#date").on("change", async function (d) {
|
$("#date").on("change", async function (d) {
|
||||||
@ -539,7 +556,7 @@ async function main() {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
main();
|
window.addEventListener("load", main);
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@ -1919,8 +1919,29 @@ def _preparer_objet(
|
|||||||
@scodoc
|
@scodoc
|
||||||
@permission_required(Permission.AbsChange)
|
@permission_required(Permission.AbsChange)
|
||||||
def signal_assiduites_diff():
|
def signal_assiduites_diff():
|
||||||
"""TODO documenter
|
"""
|
||||||
Utilisé notamment par "Saisie différée" sur tableau de bord semetstre"
|
Utilisé notamment par "Saisie différée" sur tableau de bord semetstre"
|
||||||
|
|
||||||
|
Arguments de la requête:
|
||||||
|
|
||||||
|
- group_ids : liste des groupes
|
||||||
|
example : group_ids=1,2,3
|
||||||
|
- formsemestre_id : id du formsemestre
|
||||||
|
example : formsemestre_id=1
|
||||||
|
- moduleimpl_id : id du moduleimpl
|
||||||
|
example : moduleimpl_id=1
|
||||||
|
|
||||||
|
(Permet de pré-générer une plage. Si non renseigné, la plage sera vide)
|
||||||
|
(Les trois valeurs suivantes doivent être renseignées ensemble)
|
||||||
|
- date
|
||||||
|
example : date=01/01/2021
|
||||||
|
- heure_debut
|
||||||
|
example : heure_debut=08:00
|
||||||
|
- heure_fin
|
||||||
|
example : heure_fin=10:00
|
||||||
|
|
||||||
|
Exemple de requête :
|
||||||
|
signal_assiduites_diff?formsemestre_id=67&group_ids=400&moduleimpl_id=1229&date=15/04/2024&heure_debut=12:34&heure_fin=12:55
|
||||||
"""
|
"""
|
||||||
# Récupération des paramètres de la requête
|
# Récupération des paramètres de la requête
|
||||||
group_ids: list[int] = request.args.get("group_ids", None)
|
group_ids: list[int] = request.args.get("group_ids", None)
|
||||||
@ -1962,11 +1983,23 @@ def signal_assiduites_diff():
|
|||||||
grp + ' <span class="fontred">' + groups_infos.groups_titles + "</span>"
|
grp + ' <span class="fontred">' + groups_infos.groups_titles + "</span>"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Pré-remplissage des sélecteurs
|
||||||
moduleimpl_id = request.args.get("moduleimpl_id", -1)
|
moduleimpl_id = request.args.get("moduleimpl_id", -1)
|
||||||
try:
|
try:
|
||||||
moduleimpl_id = int(moduleimpl_id)
|
moduleimpl_id = int(moduleimpl_id)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
moduleimpl_id = -1
|
moduleimpl_id = -1
|
||||||
|
# date fra (dd/mm/yyyy)
|
||||||
|
date = request.args.get("date", "")
|
||||||
|
# heures (hh:mm)
|
||||||
|
heure_deb = request.args.get("heure_debut", "")
|
||||||
|
heure_fin = request.args.get("heure_fin", "")
|
||||||
|
|
||||||
|
# vérifications des sélecteurs
|
||||||
|
date = date if re.match(r"^\d{2}\/\d{2}\/\d{4}$", date) else ""
|
||||||
|
heure_deb = heure_deb if re.match(r"^[0-2]\d:[0-5]\d$", heure_deb) else ""
|
||||||
|
heure_fin = heure_fin if re.match(r"^[0-2]\d:[0-5]\d$", heure_fin) else ""
|
||||||
|
nouv_plage: list[str] = [date, heure_deb, heure_fin]
|
||||||
|
|
||||||
return render_template(
|
return render_template(
|
||||||
"assiduites/pages/signal_assiduites_diff.j2",
|
"assiduites/pages/signal_assiduites_diff.j2",
|
||||||
@ -1987,6 +2020,7 @@ def signal_assiduites_diff():
|
|||||||
formsemestre_id=formsemestre_id,
|
formsemestre_id=formsemestre_id,
|
||||||
dept_id=g.scodoc_dept_id,
|
dept_id=g.scodoc_dept_id,
|
||||||
),
|
),
|
||||||
|
nouv_plage=nouv_plage,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user