From 291ea26b34543ae1f3d86f80b8ae16839ae65f17 Mon Sep 17 00:00:00 2001 From: Julien Martin Date: Fri, 17 Jul 2026 12:46:54 +0200 Subject: [PATCH] fix(#138): lire le consentement photo sans heuristique photo. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Admin et reprise utilisentent uniquement la valeur API ; plus de pré-cochage implicite si une photo est présente. Co-authored-by: Cursor --- frontend/lib/models/enfant_admin_model.dart | 7 ++----- frontend/lib/utils/parent_registration_payload.dart | 3 --- frontend/lib/utils/reprise_mapper.dart | 7 ++----- 3 files changed, 4 insertions(+), 13 deletions(-) diff --git a/frontend/lib/models/enfant_admin_model.dart b/frontend/lib/models/enfant_admin_model.dart index 696efa4..8eaf815 100644 --- a/frontend/lib/models/enfant_admin_model.dart +++ b/frontend/lib/models/enfant_admin_model.dart @@ -49,10 +49,7 @@ class EnfantAdminModel { } final photoUrl = json['photo_url'] as String? ?? json['photoUrl'] as String?; - final hasPhoto = (photoUrl ?? '').trim().isNotEmpty; - // L'inscription parent exigeait le consentement pour envoyer la photo, mais - // le back a longtemps forcé consent_photo=false (voir reprise_mapper). - final consentFromApi = _parseBool(json['consent_photo']) || + final consentPhoto = _parseBool(json['consent_photo']) || _parseBool(json['consentement_photo']) || _parseBool(json['consentPhoto']); @@ -67,7 +64,7 @@ class EnfantAdminModel { (json['status'] ?? json['statut'])?.toString(), ), photoUrl: photoUrl, - consentPhoto: consentFromApi || hasPhoto, + consentPhoto: consentPhoto, isMultiple: _parseBool(json['is_multiple']) || _parseBool(json['est_multiple']), parentLinks: links, diff --git a/frontend/lib/utils/parent_registration_payload.dart b/frontend/lib/utils/parent_registration_payload.dart index 26d515e..467cd35 100644 --- a/frontend/lib/utils/parent_registration_payload.dart +++ b/frontend/lib/utils/parent_registration_payload.dart @@ -199,9 +199,6 @@ class ParentRegistrationPayload { map['photo_base64'] = photo.$1; map['photo_filename'] = photo.$2; } - // Consentement photo enfant (le back l'ignore encore à l'inscription — - // à brancher côté API ; en attendant le front admin infère via photo). - map['consent_photo'] = c.photoConsent; return map; } diff --git a/frontend/lib/utils/reprise_mapper.dart b/frontend/lib/utils/reprise_mapper.dart index f965e1a..f33b53d 100644 --- a/frontend/lib/utils/reprise_mapper.dart +++ b/frontend/lib/utils/reprise_mapper.dart @@ -38,15 +38,12 @@ class RepriseMapper { ? isoToDdMmYyyy(e.dueDate) : isoToDdMmYyyy(e.birthDate); final photo = e.photoUrl?.trim(); - final hasPhoto = photo != null && photo.isNotEmpty; return ChildData( firstName: e.firstName ?? '', lastName: e.lastName ?? '', dob: dob, genre: e.gender ?? '', - // Legacy : dossiers inscrits avant #144 avaient consent_photo=false malgré une photo. - // On pré-coche encore si photo en base pour ne pas bloquer la reprise. - photoConsent: e.consentPhoto || hasPhoto, + photoConsent: e.consentPhoto, multipleBirth: e.estMultiple, isUnbornChild: isUnborn, cardColor: _childCardColors[index % _childCardColors.length], @@ -200,7 +197,7 @@ class RepriseMapper { postalCode: dossier.codePostal ?? '', city: dossier.ville ?? '', existingPhotoUrl: displayPhoto, - consentementPhoto: dossier.consentementPhoto || hasPhoto, + consentementPhoto: dossier.consentementPhoto, dateOfBirth: parseIsoDate(dossier.dateNaissance), birthCity: dossier.lieuNaissanceVille ?? '', birthCountry: dossier.lieuNaissancePays ?? '',