fix(#112): dates et places AM en reprise (resetForReprise)

Corrige l’ombre des paramètres dateOfBirth, agreementDate et placesAvailable
dans resetForReprise ; renforce le parsing reprise-dossier et ajoute un test.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-16 19:12:14 +02:00
co-authored by Cursor
parent c26ed00374
commit df776d8200
7 changed files with 256 additions and 84 deletions
@@ -11,51 +11,53 @@ class AmRegisterStep2Screen extends StatelessWidget {
@override
Widget build(BuildContext context) {
final registrationData = Provider.of<AmRegistrationData>(context, listen: false);
return Consumer<AmRegistrationData>(
builder: (context, registrationData, _) {
final initialData = ProfessionalInfoData(
photoPath: registrationData.photoPath,
photoBytes: registrationData.photoBytes,
photoFilename: registrationData.photoFilename,
photoConsent: registrationData.photoConsent,
dateOfBirth: registrationData.dateOfBirth,
birthCity: registrationData.birthCity,
birthCountry: registrationData.birthCountry,
nir: registrationData.nir,
agrementNumber: registrationData.agrementNumber,
agreementDate: registrationData.agreementDate,
capacity: registrationData.capacity,
placesAvailable: registrationData.placesAvailable,
);
final initialData = ProfessionalInfoData(
photoPath: registrationData.photoPath,
photoBytes: registrationData.photoBytes,
photoFilename: registrationData.photoFilename,
photoConsent: registrationData.photoConsent,
dateOfBirth: registrationData.dateOfBirth,
birthCity: registrationData.birthCity,
birthCountry: registrationData.birthCountry,
nir: registrationData.nir,
agrementNumber: registrationData.agrementNumber,
agreementDate: registrationData.agreementDate,
capacity: registrationData.capacity,
placesAvailable: registrationData.placesAvailable,
);
return ProfessionalInfoFormScreen(
key: ValueKey(
'am-pro-${registrationData.dateOfBirth?.millisecondsSinceEpoch}'
'-${registrationData.agreementDate?.millisecondsSinceEpoch}'
'-${registrationData.placesAvailable}'
'-${registrationData.nir}',
),
stepText: 'Étape 2/4',
title: 'Vos informations professionnelles',
cardColor: CardColorHorizontal.green,
initialData: initialData,
previousRoute: '/am-register-step1',
onSubmit: (data) {
registrationData.updateProfessionalInfo(
photoPath: data.photoPath,
photoBytes: data.photoBytes,
photoFilename: data.photoFilename,
photoConsent: data.photoConsent,
dateOfBirth: data.dateOfBirth,
birthCity: data.birthCity,
birthCountry: data.birthCountry,
nir: data.nir,
agrementNumber: data.agrementNumber,
agreementDate: data.agreementDate,
capacity: data.capacity,
placesAvailable: data.placesAvailable,
return ProfessionalInfoFormScreen(
key: ValueKey(
'am-pro-${registrationData.dateOfBirth?.millisecondsSinceEpoch}'
'-${registrationData.agreementDate?.millisecondsSinceEpoch}'
'-${registrationData.placesAvailable}'
'-${registrationData.nir}',
),
stepText: 'Étape 2/4',
title: 'Vos informations professionnelles',
cardColor: CardColorHorizontal.green,
initialData: initialData,
previousRoute: '/am-register-step1',
onSubmit: (data) {
registrationData.updateProfessionalInfo(
photoPath: data.photoPath,
photoBytes: data.photoBytes,
photoFilename: data.photoFilename,
photoConsent: data.photoConsent,
dateOfBirth: data.dateOfBirth,
birthCity: data.birthCity,
birthCountry: data.birthCountry,
nir: data.nir,
agrementNumber: data.agrementNumber,
agreementDate: data.agreementDate,
capacity: data.capacity,
placesAvailable: data.placesAvailable,
);
context.go('/am-register-step3');
},
);
context.go('/am-register-step3');
},
);
}