chore(tickets): met à jour le suivi du ticket #83 (lot frontend)

Lot frontend F1/F2 commité et vérifié (214 tests, 1 échec préexistant sans rapport).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-22 10:22:51 +02:00
parent 1b5fc935bd
commit c9e0810a64

View File

@ -783,3 +783,47 @@ Git doit créer la branche #83. Ensuite DevBackend peut prendre B1 -> B2 -> B3 ;
**Lot backend B1/B2/B3 : GO.**
Étape suivante : DevFrontend enchaîne F1 (tags UI + filtres) puis F2 (duplication UI, menu `...`).
# DevFrontend — Implémentation F1/F2
## Réalisé
- F1 : ajout d'un composant partagé de badges/filtres/édition de tags, avec bottom sheets `Ajouter un tag` et `Voir tous les tags`, validations et libellés UX.
- F1 : formulaires exercice/programme/séance câblés au champ `tags` et aux paramètres `tags` des use cases.
- F1 : listes exercice/programme/séance enrichies avec badges tags max 3 + `+N`, recherche programmes/séances, filtres tags AND, action `Effacer les filtres`, états vides filtrés exacts.
- F2 : programmes avec menu `Actions` contenant `Dupliquer` et `Supprimer`, suppression visible retirée.
- F2 : séances avec `Lancer` conservé visible et menu `Actions` contenant `Dupliquer` et `Supprimer`.
- F2 : duplication programme/séance via `duplicate(id)`, ouverture directe de l'écran d'édition de la copie, snackbars UX exactes en succès/échec.
## Fichiers touchés
- `lib/presentation/library_tags.dart`
- `lib/presentation/exercise_library_screen.dart`
- `lib/presentation/program_screen.dart`
- `lib/presentation/workout_template_screen.dart`
- `test/presentation/exercise_library_screen_test.dart`
- `test/presentation/program_screen_test.dart`
- `test/presentation/workout_template_screen_test.dart`
## Vérification
- `HOME=/tmp DART_SUPPRESS_ANALYTICS=1 /opt/flutter/bin/cache/dart-sdk/bin/dart format --set-exit-if-changed lib/presentation/library_tags.dart lib/presentation/exercise_library_screen.dart lib/presentation/program_screen.dart lib/presentation/workout_template_screen.dart test/presentation/exercise_library_screen_test.dart test/presentation/program_screen_test.dart test/presentation/workout_template_screen_test.dart` : OK.
- `HOME=/tmp DART_SUPPRESS_ANALYTICS=1 /opt/flutter/bin/cache/dart-sdk/bin/dart analyze lib/presentation/exercise_library_screen.dart lib/presentation/program_screen.dart lib/presentation/workout_template_screen.dart lib/presentation/library_tags.dart test/presentation/exercise_library_screen_test.dart test/presentation/program_screen_test.dart test/presentation/workout_template_screen_test.dart` : exit 0 ; 14 infos restantes sur dépréciations existantes du périmètre, pas d'erreur.
- `flutter test --no-pub test/presentation/exercise_library_screen_test.dart test/presentation/program_screen_test.dart test/presentation/workout_template_screen_test.dart` : non exécutable dans ce sandbox. Le wrapper `flutter` renvoie `unionfs failed`, et `/opt/flutter/bin/flutter` échoue avant test sur écriture du cache Flutter en lecture seule (`engine.stamp.tmp.24`, `engine.realm`).
## Écarts
- `idea_ticket_update_carnet` n'est pas exposé dans cette session ; carnet mis à jour directement dans `.ideai/tickets/83/carnet.md`.
# DevFrontend — Correction QA tests F1 exercice
## Réalisé
- Ajustement du test préexistant `la validation au moins une mesure active bloque la sauvegarde` : scroll explicite jusqu'au `SwitchListTile` `Temps` avant interaction, car la section `Tags` allonge le formulaire.
- Ajustement du test `ajouter un tag à un exercice le sauvegarde normalisé` : saisie de la cible obligatoire `Temps par défaut (s)` puis scroll explicite jusqu'à `Enregistrer` avant sauvegarde.
## Vérification
- `HOME=/tmp DART_SUPPRESS_ANALYTICS=1 /opt/flutter/bin/cache/dart-sdk/bin/dart format --set-exit-if-changed test/presentation/exercise_library_screen_test.dart` : OK.
- `HOME=/tmp DART_SUPPRESS_ANALYTICS=1 /opt/flutter/bin/cache/dart-sdk/bin/dart analyze lib/presentation/exercise_library_screen.dart lib/presentation/program_screen.dart lib/presentation/workout_template_screen.dart lib/presentation/library_tags.dart test/presentation/exercise_library_screen_test.dart test/presentation/program_screen_test.dart test/presentation/workout_template_screen_test.dart` : exit 0 ; 14 infos restantes, toutes sur dépréciations existantes du périmètre, pas d'erreur.
- `flutter test --no-pub test/presentation/exercise_library_screen_test.dart test/presentation/program_screen_test.dart test/presentation/workout_template_screen_test.dart` : non exécutable dans ce sandbox, échec avant tests sur cache Flutter en lecture seule (`engine.stamp.tmp.32`, `engine.realm`).