Le forfait d'astreinte ne compte plus dans les heures travaillées

Le temps travaillé, l'écart du jour et le solde de la semaine ne
restituent plus que les heures pointées. Le forfait des jours AS reste
suivi à part : ligne du jour et récapitulatif d'astreinte, libellés et
documentation ajustés en conséquence.

💘 Generated with Crush

Assisted-by: Crush:glm-5.2
This commit is contained in:
Jacquin Antoine
2026-09-09 07:26:28 +02:00
parent 6bd0e91f27
commit 5506f1ba39
7 changed files with 26 additions and 20 deletions

View File

@ -335,7 +335,7 @@ def _build_jour_ctx(date, conges, h_jour, user_id):
matin_ex, aprem_ex = exclusion_retour(conges_date, retour_min, plages, jour_ferie)
forfait = (hhmm_to_minutes(plages["astreinte_forfait"]) if plages.get("astreinte_forfait") else 0) \
if date in astreintes else 0
trav = heures_travaillees(p, retour_min) + forfait
trav = heures_travaillees(p, retour_min) # forfait d'astreinte : hors heures travaillées
du = heures_dues(date, conges, h_jour, plages, retour_min, jour_ferie)
du_full = du + matin_ex + aprem_ex
matin_nom, aprem_nom = nominaux_du_jour(conges_date, du_full, matin_ex, aprem_ex, jour_ferie)
@ -492,8 +492,8 @@ def _as_block_html(date, jour):
hint = (f'<span class="as-hint" title="11h de repos consécutif après la dernière activité, fin arrondie au quart d\'heure entamé">'
f'retour ≥ {_e(jour["retour"])}</span>')
if jour.get("forfait_min"):
hint += (f'<span class="as-hint" title="Forfait réglé dans Réglages, ajouté au temps travaillé">'
f'forfait + {_e(jour["forfait_h"])}</span>')
hint += (f'<span class="as-hint" title="Forfait du jour AS déclaré (réglé dans Réglages) : suivi dans le récapitulatif d&#39;astreinte, hors heures travaillées">'
f'forfait {_e(jour["forfait_h"])}</span>')
total = ""
if jour.get("astreinte_min"):
total = (f'<span class="as-total" title="Décompte par quarts d&#39;heure de l&#39;horloge entamés (:00, :15, :30, :45), chacun compté 15 min entières — compteur séparé, hors heures de semaine">'
@ -1125,8 +1125,9 @@ def settings_plages_save(
@app.post("/settings/astreinte-forfait", response_class=HTMLResponse)
def settings_astreinte_forfait(request: Request, astreinte_forfait: str = Form("")):
"""Durée forfaitaire ajoutée au temps travaillé de chaque jour d'astreinte
déclaré (réglage par utilisateur, stocké avec ses plages)."""
"""Durée forfaitaire attribuée à chaque jour d'astreinte déclaré (réglage par
utilisateur, stocké avec ses plages) : suivie dans le récapitulatif
d'astreinte, jamais comptée dans les heures travaillées."""
user_id = _get_user(request)
if not user_id:
return RedirectResponse("/login", status_code=302)