Commit Graph

6 Commits

Author SHA1 Message Date
edf52acdc9 Semaine parfaite : célébration kitsch quand tout boucle à +0h00
La dernière heure saisie qui clôt la semaine à +0h00 pile, sans
aucune demi-journée restante, déclenche une fête assumée : fond disco
en rotation de teintes, pluie d'une fourgonnée de confettis (emojis
et rectangles), trophée bondissant et titre doré défilant. Une seule
fois par semaine et par onglet, fermeture au clic ou après 8 s, et
animation réduite pour prefers-reduced-motion.

Le serveur pose un drapeau data-perfect (solde nul, plus rien à
remplir, heures dues non nulles) sur les soldes re-rendus à chaque
saisie et rafraîchissement ; le client le détecte et célèbre.

💘 Generated with Crush

Assisted-by: Crush:glm-5.2
2026-09-11 15:29:46 +02:00
59a04ea07f Doc et capture d'écran à jour avec l'interface actuelle
La capture datait d'avant la refonte : elle montre désormais le panneau
Aujourd'hui (sortie cible ancrée à l'heure courante), la colonne Cible
et le décompte d'astreinte pondéré, sur une semaine réaliste avec
intervention nocturne et retour décalé.

Le README aligne la description de la colonne Cible (proposée en
continu, plus « vide si le rythme normal suffit ») et documente
l'alerte de départ.

💘 Generated with Crush

Assisted-by: Crush:glm-5.2
2026-09-11 14:45:37 +02:00
0b30dda5e7 Remplace Tasker par Automation (FOSS) dans la doc de rappels
La section Android de docs/notifications.md pointait vers Tasker (payant).
Elle décrit désormais Automation (app FOSS sur F-Droid), avec deux méthodes
de déclenchement — Wi-Fi du bureau (recommandée) et géofence — et l'action
HTTP POST vers les URLs de présence existantes.

💘 Generated with Crush

Assisted-by: Crush:glm-5.2
2026-07-20 01:04:30 +02:00
c1a2f38044 Convertit les endpoints de présence en POST (anti CSRF trivial)
GET /presence/{token}/arrivee et /depart modifiaient l'état (save_presence,
append_log) : c'est anti-pattern REST, CSRF-trivial via <img src="..."> si
le token fuite, et le token se retrouvait dans les logs reverse-proxy,
l'historique navigateur et les referrers.

Les deux routes passent en POST. C'est un breaking change pour les clients
Tasker actuels, mais Tasker supporte HTTP POST nativement et la doc
docs/notifications.md est mise à jour (Tasker : HTTP Request méthode POST ;
script NetworkManager : curl -X POST).

Les tests existants qui utilisaient client.get(...) sur ces routes passent
en client.post(...). Un nouveau test vérifie que le GET renvoie désormais
405 Method Not Allowed et que le POST continue de fonctionner.

💘 Generated with Crush

Assisted-by: Crush:glm-5.2
2026-07-20 00:32:50 +02:00
459a9b4cc5 Documente la config des rappels pour Android et Ubuntu 2026-07-17 21:00:37 +02:00
33a28dc4d6 Ajoute capture d'écran dans le README
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-24 15:56:24 +02:00