fix(programme): étapes d'exercice jamais affichées en séance (ticket #72)

_ProgramExerciseDraft dans program_screen.dart (état interne du
formulaire de composition de programme) n'avait jamais de champ
exerciseStepsSnapshot depuis sa création, avant le chantier "Exercice
à plusieurs étapes" (#54). Les étapes d'un exercice étaient donc
systématiquement perdues à chaque composition/édition de programme
via l'écran réel, peu importe l'ordre des opérations — d'où l'absence
totale d'étapes affichées en séance. Ajoute le champ manquant et 2
tests de non-régression exerçant le vrai flux UI ProgramFormScreen.
flutter pub get OK, dart format appliqué (aucun changement), analyze
propre (mêmes infos préexistantes), 135/135 tests verts, build APK
debug validé.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-20 08:10:19 +02:00
parent a28080e2a7
commit adf56ec9e0
2 changed files with 163 additions and 0 deletions

View File

@ -915,6 +915,7 @@ final class _ProgramExerciseDraft {
this.exerciseImageMediaIdSnapshot,
this.exerciseImageMediaIdsSnapshot = const [],
this.exerciseVideoMediaIdSnapshot,
this.exerciseStepsSnapshot = const [],
this.exerciseArchivedSnapshot = false,
required this.availableTimeSnapshot,
required this.availableRepsSnapshot,
@ -944,6 +945,7 @@ final class _ProgramExerciseDraft {
exercise.iconMediaId ?? exercise.imageMediaId,
exerciseImageMediaIdsSnapshot: exercise.imageMediaIds,
exerciseVideoMediaIdSnapshot: exercise.videoMediaId,
exerciseStepsSnapshot: exercise.steps,
exerciseArchivedSnapshot: exercise.archivedAt != null,
availableTimeSnapshot: exercise.hasTimeMeasure,
availableRepsSnapshot: exercise.hasRepsMeasure,
@ -975,6 +977,7 @@ final class _ProgramExerciseDraft {
exerciseImageMediaIdSnapshot: exercise.exerciseImageMediaIdSnapshot,
exerciseImageMediaIdsSnapshot: exercise.exerciseImageMediaIdsSnapshot,
exerciseVideoMediaIdSnapshot: exercise.exerciseVideoMediaIdSnapshot,
exerciseStepsSnapshot: exercise.exerciseStepsSnapshot,
exerciseArchivedSnapshot: exercise.exerciseArchivedSnapshot,
availableTimeSnapshot: exercise.availableTimeSnapshot,
availableRepsSnapshot: exercise.availableRepsSnapshot,
@ -1004,6 +1007,7 @@ final class _ProgramExerciseDraft {
final String? exerciseImageMediaIdSnapshot;
final List<String> exerciseImageMediaIdsSnapshot;
final String? exerciseVideoMediaIdSnapshot;
final List<ExerciseStep> exerciseStepsSnapshot;
final bool exerciseArchivedSnapshot;
final bool availableTimeSnapshot;
final bool availableRepsSnapshot;
@ -1029,6 +1033,7 @@ final class _ProgramExerciseDraft {
exerciseImageMediaIdSnapshot: exerciseImageMediaIdSnapshot,
exerciseImageMediaIdsSnapshot: exerciseImageMediaIdsSnapshot,
exerciseVideoMediaIdSnapshot: exerciseVideoMediaIdSnapshot,
exerciseStepsSnapshot: exerciseStepsSnapshot,
exerciseArchivedSnapshot: exerciseArchivedSnapshot,
availableTimeSnapshot: availableTimeSnapshot,
availableRepsSnapshot: availableRepsSnapshot,
@ -1057,6 +1062,7 @@ final class _ProgramExerciseDraft {
exerciseImageMediaIdSnapshot: exerciseImageMediaIdSnapshot,
exerciseImageMediaIdsSnapshot: exerciseImageMediaIdsSnapshot,
exerciseVideoMediaIdSnapshot: exerciseVideoMediaIdSnapshot,
exerciseStepsSnapshot: exerciseStepsSnapshot,
exerciseArchivedSnapshot: exerciseArchivedSnapshot,
availableTimeSnapshot: availableTimeSnapshot,
availableRepsSnapshot: availableRepsSnapshot,