Astreinte : préférence personnelle et retour aligné sur les quarts d'horloge
- La gestion des astreintes devient un réglage par compte (Réglages →
« Gestion des astreintes », actif par défaut) : désactivée, le bouton AS,
les interventions, forfaits, repos de 11h, récapitulatif, ratios, stats
et exports n'en parlent plus — sans rien supprimer, réactiver retrouve tout
- L'heure de retour au bureau tombe désormais toujours sur un quart d'heure
d'horloge fixe (:00, :15, :30, :45), arrondie au supérieur après les 11h
de repos (ex. fin comptée 23:54 → retour 11:00)
- Corrigé : enregistrer ses plages horaires écrasait le forfait d'astreinte
💘 Generated with Crush
Assisted-by: Crush:glm-5.2
This commit is contained in:
@ -132,6 +132,23 @@ def test_retour_fin_nocturne_hors_quart_arrondie():
|
||||
assert retour_apres_repos("2026-07-15", p_by_date, PLAGES, ["2026-07-14"]) == 12 * 60 + 15
|
||||
|
||||
|
||||
def test_retour_toujours_sur_un_quart_dhorloge_fixe():
|
||||
"""Event 22:39→23:49 : durée 70 min arrondie à 75, fin comptée 23:54,
|
||||
retour brut 10:54 → arrondi au quart d'horloge fixe supérieur 11:00.
|
||||
Le retour tombe toujours sur :00, :15, :30 ou :45."""
|
||||
p_by_date = {"2026-07-14": _pointage("2026-07-14",
|
||||
astreinte_events=[{"debut": "22:39", "fin": "23:49"}])}
|
||||
retour = retour_apres_repos("2026-07-15", p_by_date, PLAGES, ["2026-07-14"])
|
||||
assert retour == 11 * 60
|
||||
assert retour % PAS_ASTREINTE_MIN == 0
|
||||
|
||||
# Début déjà hors quart : 22:41→23:52 (durée 71 → 75, fin comptée 23:56,
|
||||
# retour brut 10:56) → 11:00 également.
|
||||
p_by_date = {"2026-07-14": _pointage("2026-07-14",
|
||||
astreinte_events=[{"debut": "22:41", "fin": "23:52"}])}
|
||||
assert retour_apres_repos("2026-07-15", p_by_date, PLAGES, ["2026-07-14"]) == 11 * 60
|
||||
|
||||
|
||||
def test_retour_event_a_cheval_sur_minuit_saisi_la_veille():
|
||||
"""Event 23:00→01:00 (fin < début) saisi la veille : fin réelle 01:00 le jour
|
||||
même → 01:00 + 11h = 12:00."""
|
||||
|
||||
Reference in New Issue
Block a user