Refonte de l'interface : sauvegarde automatique, menu d'état unique et panneau aujourd'hui

- Chaque heure validée enregistre le jour (plus de bouton ✓), avec un témoin
  « enregistré » et conservation du focus entre les champs
- Les boutons MA/AM/J/F/AS deviennent un bouton d'état unique à pastilles
  ouvrant un menu déroulant (congés, férié, astreinte)
- Panneau Aujourd'hui : sortie cible en grand et progression travaillé/dû
  de la semaine, rafraîchis à chaque saisie
- Polish général : coins arrondis, ombres douces, hiérarchie des soldes,
  états de focus visibles

💘 Generated with Crush

Assisted-by: Crush:glm-5.2
This commit is contained in:
Jacquin Antoine
2026-09-09 20:34:27 +02:00
parent 791b48b320
commit e9983a28c7
8 changed files with 565 additions and 98 deletions

View File

@ -58,6 +58,14 @@ Si le rythme normal suffit déjà à rentrer dans les clous, aucune préconisati
Les plages qui ne respectent pas les minimums sont signalées en rouge dès la saisie.
**Enregistrement automatique** : chaque heure validée (sortie du champ, Entrée ou
sélecteur) enregistre le jour ; un témoin « ✓ enregistré » s'affiche un instant
dans la colonne Jour. Plus de bouton à cliquer.
Quand la semaine affichée contient le jour courant, un **panneau Aujourd'hui**
s'invite en tête de page : heure de sortie cible en grand et barre de progression
travaillé/dû de la semaine, actualisés à chaque saisie.
Le bandeau au-dessus du tableau ajoute, quand il reste du retard à rattraper, une ligne
**Reste à faire** : le total encore dû, le nombre de demi-journées restantes, et la part
supplémentaire moyenne à ajouter sur chacune.
@ -173,8 +181,9 @@ docker compose run --rm pointeuse pytest -v
## Congés & jours fériés
Quatre boutons par ligne : **MA** (congé matin), **AM** (congé après-midi), **J**
(journée entière) et **F** (jour férié). Les trois premiers réduisent les heures
Chaque ligne porte un bouton d'état unique (colonne **État**) qui résume la
situation par des pastilles colorées et ouvre un menu : **MA** (congé matin), **AM**
(congé après-midi), **J** (journée entière) et **F** (jour férié). Les trois premiers réduisent les heures
dues et recalculent les préconisations **Fin cible** pour les demi-journées
restantes. **F** marque un jour férié (fête locale non calculée, pont...) : heures
dues nulles, aucune présence obligatoire, ligne grisée avec badge « férié » — sans
@ -185,7 +194,7 @@ d'astreinte (×2 en journée par défaut) et pour la fenêtre d'astreinte ci-des
## Astreinte & repos de 11h
Le bouton **AS** marque un jour d'astreinte : la période couverte va de **18:00
Le bouton **AS** du menu d'état marque un jour d'astreinte : la période couverte va de **18:00
ce jour-là à 18:00 le lendemain** (deux astreintes consécutives se recollent sans
trou) — sauf **samedi, dimanche et jour férié**, qui comptent de **0h00 à 0h00**
(journée entière ; un jour AS déclaré sam/dim/férié garde sa borne du lendemain