diff --git a/frontend/lib/widgets/admin/common/admin_child_detail_modal.dart b/frontend/lib/widgets/admin/common/admin_child_detail_modal.dart index e160b25..eae7d4d 100644 --- a/frontend/lib/widgets/admin/common/admin_child_detail_modal.dart +++ b/frontend/lib/widgets/admin/common/admin_child_detail_modal.dart @@ -1277,18 +1277,16 @@ class _AdminChildDetailModalState extends State { return; } - // Édition orphelin (#157) : rattache immédiatement au foyer. + // Édition orphelin (#157/#158) : un seul attach — le back propage au foyer. final enfantId = widget.enfant?.id; if (enfantId == null || enfantId.isEmpty) return; setState(() => _saving = true); try { - for (final parentId in selected.parentUserIds) { - await UserService.attachEnfantToParent( - parentUserId: parentId, - enfantId: enfantId, - ); - } + await UserService.attachEnfantToParent( + parentUserId: selected.pivotParentUserId, + enfantId: enfantId, + ); final refreshed = await UserService.getEnfant(enfantId); if (!mounted) return; setState(() { diff --git a/frontend/lib/widgets/admin/common/admin_parent_edit_modal.dart b/frontend/lib/widgets/admin/common/admin_parent_edit_modal.dart index 6365159..101b6a5 100644 --- a/frontend/lib/widgets/admin/common/admin_parent_edit_modal.dart +++ b/frontend/lib/widgets/admin/common/admin_parent_edit_modal.dart @@ -283,7 +283,7 @@ class _AdminParentEditModalState extends State { builder: (ctx) => AlertDialog( title: const Text('Détacher l\'enfant'), content: Text( - 'Retirer ${child.fullName} de la fiche de ce parent ?', + 'Retirer ${child.fullName} du foyer (tous les responsables) ?', ), actions: [ TextButton( @@ -308,8 +308,9 @@ class _AdminParentEditModalState extends State { if (!mounted) return; await _reloadChildren(); if (!mounted) return; + widget.onSaved?.call(); ScaffoldMessenger.of(context).showSnackBar( - const SnackBar(content: Text('Enfant détaché')), + const SnackBar(content: Text('Enfant détaché du foyer')), ); } catch (e) { if (!mounted) return; @@ -336,8 +337,9 @@ class _AdminParentEditModalState extends State { if (!mounted) return; await _reloadChildren(); if (!mounted) return; + widget.onSaved?.call(); ScaffoldMessenger.of(context).showSnackBar( - const SnackBar(content: Text('Enfant rattaché')), + const SnackBar(content: Text('Enfant rattaché au foyer')), ); } catch (e) { if (!mounted) return;