diff --git a/README.md b/README.md index 09eed3d..f0e65de 100644 --- a/README.md +++ b/README.md @@ -96,6 +96,12 @@ Une **alerte de départ** (bandeau ⏰ + notification navigateur) se déclenche quand l'heure de sortie cible est atteinte — y compris si elle a glissé plus tard dans la journée, l'alerte suit la cible la plus fraîche. +Et quand la dernière heure saisie boucle la semaine à **+0h00 pile**, une célébration +kitsch assumée (pluie de confettis, fond disco, trophée bondissant) récompense la +performance — une seule fois par semaine et par onglet, promis. + + + --- ## Pages diff --git a/app/calcul.py b/app/calcul.py index 24fa7a2..82d3161 100644 --- a/app/calcul.py +++ b/app/calcul.py @@ -1023,6 +1023,7 @@ def compute_week(pointages: list[dict], conges: list[dict], heures_jour_min: int "jours": jours, "total_travaille": minutes_to_hhmm(total_travaille), "total_du": minutes_to_hhmm(total_du), + "total_du_min": total_du, "solde": minutes_to_hhmm(total_travaille - total_du), "solde_min": total_travaille - total_du, "reste_min": reste_min, diff --git a/app/main.py b/app/main.py index 93f58fe..3423733 100644 --- a/app/main.py +++ b/app/main.py @@ -327,6 +327,12 @@ def _build_soldes_ctx(year, week, conges, h_jour, user_id): contexte = _contexte_semaine_precedente(year, week, dates, user_id) result = compute_week(pointages, conges, h_jour, load_plages(user_id), load_astreintes_effectives(user_id), load_facteurs_astreinte(), load_feries(user_id), contexte) result["heures_jour"] = minutes_to_hhmm(h_jour) + # Semaine parfaite : plus rien à remplir et solde à 0 pile — déclenche la + # célébration côté client (une seule fois par onglet). + result["perfect"] = (result["solde_min"] == 0 and result["slots_restants"] == 0 + and result["total_du_min"] > 0) + if result["perfect"]: + result["perfect_key"] = f"{year}-W{week:02d}" # Panneau « aujourd'hui » : uniquement si le jour courant appartient à la # semaine affichée (re-rendu à chaque enregistrement via _soldes.html). today_str = datetime.today().date().isoformat() diff --git a/app/templates/_soldes.html b/app/templates/_soldes.html index bff0d04..9fc2f03 100644 --- a/app/templates/_soldes.html +++ b/app/templates/_soldes.html @@ -1,4 +1,4 @@ -