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

@ -2,8 +2,8 @@
import statistics as _st
from datetime import datetime, timedelta, date as _date
from models import load_week_pointages, load_conges, list_all_weeks, load_config
from calcul import hhmm_to_minutes, minutes_to_hhmm, heures_travaillees, heures_dues, DEFAULT_PLAGES
from models import load_week_pointages, load_conges, list_all_weeks, load_config, load_plages
from calcul import hhmm_to_minutes, minutes_to_hhmm, heures_travaillees, heures_dues
MOIS_FR = [
"janvier", "février", "mars", "avril", "mai", "juin",
@ -60,7 +60,7 @@ def compute_all_stats(user_id: str = "") -> dict:
conges = load_conges(user_id)
cfg = load_config()
h_jour = int(float(cfg.get("heures_jour", 7.8)) * 60)
plages = {**DEFAULT_PLAGES, **cfg.get("plages", {})}
plages = load_plages(user_id)
cg_set = {(c["date"], c["type"]) for c in conges}
today = _date.today()