Respecte la pause déjeuner dans les préconisations et ajoute les heures visées
La cible matin ne dépasse plus jamais matin_fin, garantissant la pause de midi ; le nominal qui déborde bascule sur l'après-midi du même jour. Ajoute deux réglages optionnels par utilisateur (arrivée visée le matin, départ visé le soir) qui orientent la répartition du rattrapage en deux passes : d'abord dans le cadre visé, puis au-delà si nécessaire. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
10
app/main.py
10
app/main.py
@ -599,6 +599,7 @@ def settings_plages_save(
|
||||
matin_debut: str = Form(""), matin_fin: str = Form(""),
|
||||
aprem_debut: str = Form(""), aprem_fin: str = Form(""),
|
||||
pause_dejeuner_fin: str = Form(""),
|
||||
arrivee_visee: str = Form(""), depart_vise: str = Form(""),
|
||||
):
|
||||
user_id = _get_user(request)
|
||||
if not user_id:
|
||||
@ -608,13 +609,20 @@ def settings_plages_save(
|
||||
"matin_debut": matin_debut, "matin_fin": matin_fin,
|
||||
"aprem_debut": aprem_debut, "aprem_fin": aprem_fin,
|
||||
"pause_dejeuner_fin": pause_dejeuner_fin,
|
||||
# Heures visées, optionnelles (vide = comportement par défaut)
|
||||
"arrivee_visee": arrivee_visee, "depart_vise": depart_vise,
|
||||
}
|
||||
if not all(_HHMM_RE.match(v) for v in fields.values()):
|
||||
optionnels = {"arrivee_visee", "depart_vise"}
|
||||
if not all(_HHMM_RE.match(v) for k, v in fields.items() if v or k not in optionnels):
|
||||
logger.warning("réglages plages rejetés (format invalide): user_id=%r valeurs=%r", user_id, fields)
|
||||
return RedirectResponse("/settings?plages_error=1", status_code=303)
|
||||
if not (fields["matin_debut"] < fields["matin_fin"] < fields["aprem_debut"] < fields["aprem_fin"]):
|
||||
logger.warning("réglages plages rejetés (ordre invalide): user_id=%r valeurs=%r", user_id, fields)
|
||||
return RedirectResponse("/settings?plages_error=1", status_code=303)
|
||||
if (fields["arrivee_visee"] and fields["arrivee_visee"] >= fields["matin_fin"]) or \
|
||||
(fields["depart_vise"] and fields["depart_vise"] < fields["aprem_fin"]):
|
||||
logger.warning("réglages plages rejetés (heures visées incohérentes): user_id=%r valeurs=%r", user_id, fields)
|
||||
return RedirectResponse("/settings?plages_error=1", status_code=303)
|
||||
|
||||
logger.info("réglages plages mis à jour: user_id=%r plages=%r", user_id, fields)
|
||||
save_plages(user_id, fields)
|
||||
|
||||
Reference in New Issue
Block a user