Rend les plages horaires configurables par utilisateur plutôt que globalement

Chaque compte a désormais son propre data/users/<user>/plages.json, réglable
depuis une nouvelle carte "Plages horaires" sur /settings (avec validation
HH:MM et ordre matin < aprem). Le calcul, les stats de conformité et les
avertissements de saisie lisent la config de l'utilisateur courant au lieu
du plages global. La valeur globale de data/config.json reste lue comme
valeur de repli tant qu'un utilisateur n'a rien personnalisé.
This commit is contained in:
Antoine
2026-07-17 23:15:06 +02:00
parent dd8848a115
commit d87bf6a212
6 changed files with 115 additions and 33 deletions

View File

@ -30,7 +30,8 @@ La semaine cible est **39h** (7h48 / jour). Les directives imposent des plages d
| Matin | 09:00 → 12:00 |
| Après-midi | 14:00 → 17:00 |
Ces horaires sont configurables (voir [Configuration](#configuration)).
Ces horaires sont réglables par utilisateur depuis la page **Réglages** de l'app (voir
[Configuration](#configuration)).
Quand un écart apparaît, l'outil ne le reporte pas d'un coup sur la fin de la journée en
cours : il **répartit le manque à parts égales sur toutes les demi-journées restantes**
@ -86,13 +87,6 @@ Seul `data/config.example.json` est versionné.
"user": "no-reply@exemple.fr",
"password": "change-moi",
"use_tls": true
},
"plages": {
"matin_debut": "09:00",
"matin_fin": "12:00",
"aprem_debut": "14:00",
"aprem_fin": "17:00",
"pause_dejeuner_fin": "13:30"
}
}
```
@ -102,13 +96,12 @@ Seul `data/config.example.json` est versionné.
- `allowed_email_domain` — seules les adresses de ce domaine peuvent se connecter.
- `mail_from` — adresse expéditrice des emails de connexion.
- `smtp` — serveur relais utilisé pour l'envoi (host, port, identifiants, TLS).
- `plages` — bornes de présence obligatoire matin/après-midi (voir [Principe](#principe)) et heure de reprise
par défaut de l'après-midi (`pause_dejeuner_fin`) tant que l'entrée aprem n'est pas encore saisie. Modifier
ces valeurs change à la fois les avertissements de saisie, les stats de conformité et le calcul de l'heure
de sortie optimale.
Les rappels ntfy (topic, serveur, plage horaire) se règlent par utilisateur depuis la page **Réglages** de l'app,
pas dans `config.json`.
Les rappels ntfy (topic, serveur, plage horaire) et les **plages horaires** (bornes de
présence obligatoire matin/après-midi, voir [Principe](#principe), et heure de reprise
par défaut de l'après-midi) se règlent **par utilisateur** depuis la page **Réglages**
de l'app, pas dans `config.json`. Modifier ses plages change, pour ce compte uniquement,
les avertissements de saisie, les stats de conformité et les préconisations de rattrapage.
---