Répartit les préconisations de rattrapage sur les demi-journées restantes de la semaine
Au lieu de reporter tout le manque horaire sur la sortie du jour courant, le calcul distribue désormais le retard à parts égales sur chaque demi-journée non traitée (aujourd'hui et jours à venir), avec un plafond de sécurité si le rattrapage dépasse minuit. La table affiche une cible par demi-journée (matin/après-midi) et le bandeau de soldes indique le reste à faire et le nombre de demi-journées restantes.
This commit is contained in:
20
app/main.py
20
app/main.py
@ -154,7 +154,7 @@ def _oob_calc(date, jour):
|
||||
)
|
||||
|
||||
|
||||
def _oob_week_extras(result, plages):
|
||||
def _oob_week_extras(result):
|
||||
html = ""
|
||||
for jour in result["jours"]:
|
||||
date = jour["date"]
|
||||
@ -169,14 +169,12 @@ def _oob_week_extras(result, plages):
|
||||
else:
|
||||
cumul_inner = '<span class="delta-zero">—</span>'
|
||||
html += f'<span id="calc-{date}-cumul" hx-swap-oob="true">{cumul_inner}</span>'
|
||||
cible = None
|
||||
if not jour.get("is_complete"):
|
||||
if jour.get("entree_cible"):
|
||||
suffix = f'→{plages["matin_fin"]}' if "aprem" in jour.get("conge", set()) else f'→{plages["aprem_fin"]}'
|
||||
cible = f'{jour["entree_cible"]}{suffix}'
|
||||
elif jour.get("sortie_cible"):
|
||||
cible = jour.get("sortie_cible")
|
||||
cible_inner = f'<span class="cible-num">{cible}</span>' if cible else '<span class="delta-zero">—</span>'
|
||||
parts = []
|
||||
if jour.get("cible_matin"):
|
||||
parts.append(f'<span class="cible-num">M {jour["cible_matin"]}</span>')
|
||||
if jour.get("cible_aprem"):
|
||||
parts.append(f'<span class="cible-num">A {jour["cible_aprem"]}</span>')
|
||||
cible_inner = " ".join(parts) if parts else '<span class="delta-zero">—</span>'
|
||||
html += f'<span id="calc-{date}-cible" hx-swap-oob="true">{cible_inner}</span>'
|
||||
return html
|
||||
|
||||
@ -236,7 +234,7 @@ def _htmx_conge_and_soldes(request, date, d, conges, h_jour, user_id):
|
||||
_oob_time_cells(date, jour, plages)
|
||||
+ btns_html
|
||||
+ _oob_calc(date, jour)
|
||||
+ _oob_week_extras(soldes_ctx["result"], plages)
|
||||
+ _oob_week_extras(soldes_ctx["result"])
|
||||
+ soldes_html
|
||||
)
|
||||
|
||||
@ -250,7 +248,7 @@ def _htmx_calc_and_soldes(request, date, d, conges, h_jour, user_id):
|
||||
return HTMLResponse(
|
||||
_oob_calc(date, jour)
|
||||
+ _oob_time_cells(date, jour, plages)
|
||||
+ _oob_week_extras(soldes_ctx["result"], plages)
|
||||
+ _oob_week_extras(soldes_ctx["result"])
|
||||
+ soldes_html
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user