diff --git a/app/tables/visu_assiduites.py b/app/tables/visu_assiduites.py
index 9d1adff30..82ba03681 100644
--- a/app/tables/visu_assiduites.py
+++ b/app/tables/visu_assiduites.py
@@ -114,9 +114,18 @@ class RowAssi(tb.Row):
compte_justificatifs = scass.filter_by_date(
etud.justificatifs, Justificatif, self.dates[0], self.dates[1]
- ).count()
+ )
- self.add_cell("justificatifs", "Justificatifs", f"{compte_justificatifs}")
+ compte_justificatifs_att = compte_justificatifs.filter(Justificatif.etat == 2)
+
+ self.add_cell(
+ "justificatifs_att",
+ "Justificatifs en Attente",
+ f"{compte_justificatifs_att.count()}",
+ )
+ self.add_cell(
+ "justificatifs", "Justificatifs", f"{compte_justificatifs.count()}"
+ )
def _get_etud_stats(self, etud: Identite) -> dict[str, list[str, float, float]]:
retour: dict[str, tuple[str, float, float]] = {
diff --git a/app/templates/assiduites/pages/ajout_justificatif.j2 b/app/templates/assiduites/pages/ajout_justificatif.j2
index 878d2fa06..aef3d5bbd 100644
--- a/app/templates/assiduites/pages/ajout_justificatif.j2
+++ b/app/templates/assiduites/pages/ajout_justificatif.j2
@@ -19,8 +19,9 @@
+ Journée entière
-
+
@@ -110,16 +111,15 @@
function validateFields() {
const field = document.querySelector('.justi-form')
- const in_date_debut = field.querySelector('#justi_date_debut');
- const in_date_fin = field.querySelector('#justi_date_fin');
+ const { deb, fin } = getDates()
- if (in_date_debut.value == "" || in_date_fin.value == "") {
+ if (deb.value == "" || fin.value == "") {
openAlertModal("Erreur détéctée", document.createTextNode("Il faut indiquer une date de début et une date de fin."), "", color = "crimson");
return false;
}
- const date_debut = moment.tz(in_date_debut.value, TIMEZONE);
- const date_fin = moment.tz(in_date_fin.value, TIMEZONE);
+ const date_debut = moment.tz(deb.value, TIMEZONE);
+ const date_fin = moment.tz(fin.value, TIMEZONE);
if (date_fin.isBefore(date_debut)) {
openAlertModal("Erreur détéctée", document.createTextNode("La date de fin doit se trouver après la date de début."), "", color = "crimson");
@@ -132,14 +132,14 @@
function fieldsToJustificatif() {
const field = document.querySelector('.justi-form')
- const date_debut = field.querySelector('#justi_date_debut').value;
- const date_fin = field.querySelector('#justi_date_fin').value;
+ const { deb, fin } = getDates()
+
const etat = field.querySelector('#justi_etat').value;
const raison = field.querySelector('#justi_raison').value;
return {
- date_debut: date_debut,
- date_fin: date_fin,
+ date_debut: deb,
+ date_fin: fin,
etat: etat,
raison: raison,
}
@@ -218,14 +218,43 @@
}
+ function dayOnly() {
+ if (document.getElementById('justi_journee').checked) {
+ document.getElementById("date_fin").style.display = "none";
+ document.getElementById("justi_date_debut").type = "date"
+ } else {
+ document.getElementById("date_fin").style.display = "block";
+ document.getElementById("justi_date_debut").type = "datetime-local"
+ }
+ }
+
+ function getDates() {
+ if (document.getElementById('justi_journee').checked) {
+ const date_str = document.getElementById("justi_date_debut").value
+
+ return {
+ "deb": `${date_str}T${assi_morning}`,
+ "fin": `${date_str}T${assi_evening}`,
+ }
+ }
+
+ return {
+ "deb": document.getElementById("justi_date_debut").value,
+ "fin": document.getElementById("justi_date_fin").value,
+ }
+ }
const etudid = {{ sco.etud.id }};
const assi_limit_annee = "{{ assi_limit_annee }}" == "True" ? true : false;
+ const assi_morning = '{{assi_morning}}';
+ const assi_evening = '{{assi_evening}}';
window.onload = () => {
loadAll();
+ document.getElementById('justi_journee').addEventListener('click', () => { dayOnly() });
+ dayOnly()
}
{% endblock pageContent %}
\ No newline at end of file
diff --git a/app/views/assiduites.py b/app/views/assiduites.py
index 55b96e470..c40345c9b 100644
--- a/app/views/assiduites.py
+++ b/app/views/assiduites.py
@@ -174,7 +174,7 @@ def index_html():
"""
)
- dept : Departement = Departement.query.filter_by(id=g.scodoc_dept_id).first()
+ dept: Departement = Departement.query.filter_by(id=g.scodoc_dept_id).first()
annees: list[int] = sorted(
[f.date_debut.year for f in dept.formsemestres],
reverse=True,
@@ -438,6 +438,8 @@ def ajout_justificatif_etud():
"assi_limit_annee",
dept_id=g.scodoc_dept_id,
),
+ assi_morning=ScoDocSiteConfig.get("assi_morning_time", "08:00"),
+ assi_evening=ScoDocSiteConfig.get("assi_evening_time", "18:00"),
),
).build()