diff --git a/app/scodoc/sco_utils.py b/app/scodoc/sco_utils.py
index 67b554049..61769d2e0 100644
--- a/app/scodoc/sco_utils.py
+++ b/app/scodoc/sco_utils.py
@@ -1254,20 +1254,25 @@ def annee_scolaire_debut(year, month) -> int:
return int(year) - 1
-def date_debut_anne_scolaire(annee_sco: int) -> datetime:
+def date_debut_anne_scolaire(annee_sco: int | None = None) -> datetime.datetime:
"""La date de début de l'année scolaire
- (par défaut, le 1er aout)
+ Si annee_sco n'est pas spécifié, année courante
+ (par défaut, l'année scolaire en métropole commence le 1er aout)
"""
+ if annee_sco is None:
+ annee_sco = annee_scolaire()
return datetime.datetime(year=annee_sco, month=MONTH_DEBUT_ANNEE_SCOLAIRE, day=1)
-def date_fin_anne_scolaire(annee_sco: int) -> datetime:
+def date_fin_anne_scolaire(annee_sco: int | None = None) -> datetime.datetime:
"""La date de fin de l'année scolaire
(par défaut, le 31 juillet de l'année suivante)
"""
# on prend la date de début de l'année scolaire suivante,
- # et on lui retre 1 jour.
+ # et on lui retire 1 jour.
# On s'affranchit ainsi des problèmes de durées de mois.
+ if annee_sco is None:
+ annee_sco = annee_scolaire()
return datetime.datetime(
year=annee_sco + 1, month=MONTH_DEBUT_ANNEE_SCOLAIRE, day=1
) - datetime.timedelta(days=1)
diff --git a/app/static/css/assiduites.css b/app/static/css/assiduites.css
index 613797f9a..82f51606a 100644
--- a/app/static/css/assiduites.css
+++ b/app/static/css/assiduites.css
@@ -660,3 +660,16 @@ table.liste_assi td.date {
table.liste_assi td.actions {
white-space: nowrap; /* boutons horizontalement */
}
+
+tr.row-assiduite td {
+ border-bottom: 1px solid grey;
+}
+tr.row-assiduite.absent td.assi-type {
+ background-color: var(--color-absent-clair);
+}
+tr.row-assiduite.retard td.assi-type {
+ background-color: var(--color-retard);
+}
+tr.row-assiduite.present td.assi-type {
+ background-color: var(--color-present);
+}
diff --git a/app/static/js/assiduites.js b/app/static/js/assiduites.js
index 4ec47b72a..8f95d7f54 100644
--- a/app/static/js/assiduites.js
+++ b/app/static/js/assiduites.js
@@ -1429,7 +1429,7 @@ function generateEtudRow(
-
+
${etud.nom}
${etud.prenom}
diff --git a/app/tables/liste_assiduites.py b/app/tables/liste_assiduites.py
index db3348d80..fc49464f4 100644
--- a/app/tables/liste_assiduites.py
+++ b/app/tables/liste_assiduites.py
@@ -54,9 +54,10 @@ class ListeAssiJusti(tb.Table):
with_foot_titles=False,
)
- self.ajouter_lignes()
+ self.add_assiduites()
- def ajouter_lignes(self):
+ def add_assiduites(self):
+ "Ajoute le contenu de la table, avec assiduités et justificatif réunis"
# Générer les query assiduités et justificatifs
assiduites_query_etudiants: Query = None
justificatifs_query_etudiants: Query = None
@@ -215,6 +216,8 @@ class ListeAssiJusti(tb.Table):
class RowAssiJusti(tb.Row):
+ "Ligne de table pour une assiduité"
+
def __init__(self, table: ListeAssiJusti, ligne: dict):
self.ligne: dict = ligne
self.etud: Identite = Identite.get_etud(ligne["etudid"])
@@ -259,7 +262,7 @@ class RowAssiJusti(tb.Row):
# Ajout des colonnes optionnelles
self._optionnelles()
- # Ajout de l'utilisateur ayant saisie l'objet
+ # Ajout de l'utilisateur ayant saisi l'objet
self._utilisateur()
# Date de saisie
@@ -277,25 +280,27 @@ class RowAssiJusti(tb.Row):
obj_type: str = ""
is_assiduite: bool = self.ligne["type"] == "assiduite"
if is_assiduite:
+ self.classes.append("row-assiduite")
+ self.classes.append(EtatAssiduite(self.ligne["etat"]).name.lower())
etat: str = {
EtatAssiduite.PRESENT: "Présence",
EtatAssiduite.ABSENT: "Absence",
EtatAssiduite.RETARD: "Retard",
}.get(self.ligne["etat"])
-
justifiee: str = "Justifiée" if self.ligne["est_just"] else ""
obj_type = f"{etat} {justifiee}"
else:
+ self.classes.append("row-justificatif")
+ self.classes.append(EtatJustificatif(self.ligne["etat"]).name.lower())
etat: str = {
EtatJustificatif.VALIDE: "valide",
EtatJustificatif.ATTENTE: "soumis",
EtatJustificatif.MODIFIE: "modifié",
EtatJustificatif.NON_VALIDE: "invalide",
}.get(self.ligne["etat"])
-
obj_type = f"Justificatif {etat}"
- self.add_cell("obj_type", "Type", obj_type)
+ self.add_cell("obj_type", "Type", obj_type, classes=["assi-type"])
def _etud(self, lien_redirection) -> None:
etud = self.etud
diff --git a/app/templates/assiduites/pages/bilan_etud.j2 b/app/templates/assiduites/pages/bilan_etud.j2
index eeb190ab8..0ed1e57fa 100644
--- a/app/templates/assiduites/pages/bilan_etud.j2
+++ b/app/templates/assiduites/pages/bilan_etud.j2
@@ -2,7 +2,7 @@
{% include "assiduites/widgets/tableau_base.j2" %}
Attention, cet étudiant a trop d'absences
@@ -383,4 +383,4 @@ .suppr { margin: 5px 0; } - \ No newline at end of file + diff --git a/app/templates/assiduites/pages/tableau_actions.j2 b/app/templates/assiduites/pages/tableau_assiduite_actions.j2 similarity index 100% rename from app/templates/assiduites/pages/tableau_actions.j2 rename to app/templates/assiduites/pages/tableau_assiduite_actions.j2 diff --git a/app/templates/assiduites/widgets/tableau_actions/details.j2 b/app/templates/assiduites/widgets/tableau_actions/details.j2 index fe10ad2b6..9d8193c07 100644 --- a/app/templates/assiduites/widgets/tableau_actions/details.j2 +++ b/app/templates/assiduites/widgets/tableau_actions/details.j2 @@ -1,18 +1,18 @@ -