Enfant sans responsable — détachement dernier parent + alerte liste Enfants #157

Closed
opened 2026-07-17 16:56:59 +00:00 by jmartin · 1 comment
Owner

Contexte

Quand un gestionnaire détache un enfant du seul responsable auquel il est lié, l’enfant peut se retrouver sans aucun parent (enfants_parents vide).

C’est un cas métier légitime (erreur de rattachement, recomposition, transfert de foyer, etc.) : l’enfant doit rester visible dans l’onglet Enfants, pas disparaître ni bloquer le détachement.

Il faut alors alerter le gestionnaire qu’un rattachement est nécessaire — sur le même principe que la vigilance AM (liste AM : bordure + ! / tooltip).


Objectif

  1. Autoriser le détachement même si c’était le dernier parent lié (enfant « orphelin » côté affiliation).
  2. Dans la liste Enfants, signaler clairement ces enfants :
    • surbrillance : cadre / bordure rouge + icône point d’exclamation (réutiliser le pattern vigilanceTooltip de AdminUserCard, comme les AM)
    • tooltip du type : « Aucun responsable rattaché — à rattacher à un foyer »
  3. Tri : remonter ces enfants en haut de la liste pour qu’ils soient immédiatement visibles.

Backend

  • Vérifier DELETE …/parents/:id/enfants/:enfantId (ou équivalent) : ne pas interdire le détachement du dernier parent
  • Si une contrainte / 400 / 409 existe aujourd’hui → la retirer ou la limiter aux cas vraiment invalides
  • S’assurer que GET /enfants (liste staff) inclut les enfants sans parentLinks (pas de filtre implicite « doit avoir un parent »)
  • (Optionnel) exposer un flag calculé du type sans_responsable / orphan pour simplifier le front — sinon le front déduit de parentLinks.isEmpty

Frontend

  • Détection : enfant sans responsable (parentLinks vide / aucun nom responsable)
  • Carte liste Enfants : borderColor rouge + vigilanceTooltip (icône !, cf. AM)
  • Tri liste : orphelins d’abord, puis ordre actuel (nom…)
  • Depuis la fiche enfant : pouvoir rattacher à une famille / foyer (lien avec flux #132 / sélection famille) pour lever l’alerte
  • Après détachement du dernier parent depuis fiche parent : l’enfant reste dans la liste Enfants avec l’alerte (pas d’erreur bloquante)

UX de référence

Liste Assistantes maternelles : vigilance places (am_vigilance.dart + AdminUserCard.vigilanceTooltip + bordure).
Même langage visuel pour « enfant sans responsable ».

Hors scope

  • Suppression définitive d’un enfant → epic #154
  • Famille complexe N responsables → #139
  • Création enfant sur foyer existant → #132 (déjà le moyen de rattacher / créer)

Critères d’acceptation

  • Détacher du foyer (dernier lien(s)) → succès ; enfant orphelin toujours listé dans Enfants (détachement foyer = #158)
  • Carte enfant sans parent : bordure rouge + ! + tooltip explicite
  • Ces enfants apparaissent en tête de liste
  • Après rattachement à au moins un parent → alerte et priorité de tri disparaissent
  • Non-régression : enfants avec parent(s) inchangés ; vigilance AM inchangée

Milestone

0.1.0

Liens

  • Rattachement parent↔enfant : #115 / #116 / #140
  • Création / rattachement foyer : #132
  • Suppression : #154

Alignement #158 (décision produit)

Le détachement n’est plus unitaire par parent : détacher depuis un responsable retire l’enfant de tout le foyer (pivot + co-parent) — voir #158.

#157 reste le cas après ce détachement foyer : si plus aucun lien → enfant orphelin listé + alerte visuelle.

## Contexte Quand un gestionnaire **détache** un enfant du **seul** responsable auquel il est lié, l’enfant peut se retrouver **sans aucun parent** (`enfants_parents` vide). C’est un cas métier **légitime** (erreur de rattachement, recomposition, transfert de foyer, etc.) : l’enfant doit **rester visible** dans l’onglet **Enfants**, pas disparaître ni bloquer le détachement. Il faut alors **alerter** le gestionnaire qu’un rattachement est nécessaire — sur le même principe que la **vigilance AM** (liste AM : bordure + `!` / tooltip). --- ## Objectif 1. **Autoriser** le détachement même si c’était le **dernier** parent lié (enfant « orphelin » côté affiliation). 2. Dans la **liste Enfants**, signaler clairement ces enfants : - **surbrillance** : cadre / bordure **rouge** + icône **point d’exclamation** (réutiliser le pattern `vigilanceTooltip` de `AdminUserCard`, comme les AM) - tooltip du type : *« Aucun responsable rattaché — à rattacher à un foyer »* 3. **Tri** : remonter ces enfants **en haut** de la liste pour qu’ils soient immédiatement visibles. --- ## Backend - [ ] Vérifier `DELETE …/parents/:id/enfants/:enfantId` (ou équivalent) : **ne pas interdire** le détachement du dernier parent - [ ] Si une contrainte / 400 / 409 existe aujourd’hui → la retirer ou la limiter aux cas vraiment invalides - [ ] S’assurer que `GET /enfants` (liste staff) **inclut** les enfants sans `parentLinks` (pas de filtre implicite « doit avoir un parent ») - [ ] (Optionnel) exposer un flag calculé du type `sans_responsable` / `orphan` pour simplifier le front — sinon le front déduit de `parentLinks.isEmpty` ## Frontend - [ ] Détection : enfant sans responsable (`parentLinks` vide / aucun nom responsable) - [ ] Carte liste Enfants : `borderColor` rouge + `vigilanceTooltip` (icône `!`, cf. AM) - [ ] Tri liste : orphelins **d’abord**, puis ordre actuel (nom…) - [ ] Depuis la fiche enfant : pouvoir **rattacher** à une famille / foyer (lien avec flux #132 / sélection famille) pour lever l’alerte - [ ] Après détachement du dernier parent depuis fiche parent : l’enfant reste dans la liste Enfants **avec** l’alerte (pas d’erreur bloquante) ## UX de référence Liste **Assistantes maternelles** : vigilance places (`am_vigilance.dart` + `AdminUserCard.vigilanceTooltip` + bordure). Même langage visuel pour « enfant sans responsable ». ## Hors scope - Suppression définitive d’un enfant → epic **#154** - Famille complexe N responsables → **#139** - Création enfant sur foyer existant → **#132** (déjà le moyen de rattacher / créer) ## Critères d’acceptation - [ ] Détacher du foyer (dernier lien(s)) → **succès** ; enfant orphelin toujours listé dans **Enfants** (détachement foyer = **#158**) - [ ] Carte enfant sans parent : **bordure rouge** + **!** + tooltip explicite - [ ] Ces enfants apparaissent **en tête** de liste - [ ] Après rattachement à au moins un parent → alerte et priorité de tri **disparaissent** - [ ] Non-régression : enfants avec parent(s) inchangés ; vigilance AM inchangée ## Milestone **0.1.0** ## Liens - Rattachement parent↔enfant : **#115** / **#116** / **#140** - Création / rattachement foyer : **#132** - Suppression : **#154** --- ## Alignement #158 (décision produit) Le **détachement** n’est plus unitaire par parent : détacher depuis un responsable retire l’enfant de **tout le foyer** (pivot + co-parent) — voir **#158**. **#157** reste le cas **après** ce détachement foyer : si plus aucun lien → enfant orphelin listé + alerte visuelle.
jmartin added this to the 0.1.0 milestone 2026-07-17 16:56:59 +00:00
jmartin added the
admin
backend
frontend
gestionnaire
phase-1
ux
v0.1.0
labels 2026-07-17 16:56:59 +00:00
Author
Owner

Livr� sur develop et master (squash 99a6c17).

  • D�tachement du dernier parent autoris� (API)
  • Flag sans_responsable sur GET /enfants
  • Liste Enfants : bordure rouge + ! + tooltip, orphelins en t�te
  • Fiche enfant orphelin : rattachement � un foyer
  • Compteur foyer interim c�t� liste Parents (r�gle attach co-parent ? #158)

Refs: #157, #158

Livr� sur `develop` et `master` (squash `99a6c17`). - D�tachement du dernier parent autoris� (API) - Flag `sans_responsable` sur GET /enfants - Liste Enfants : bordure rouge + `!` + tooltip, orphelins en t�te - Fiche enfant orphelin : rattachement � un foyer - Compteur foyer interim c�t� liste Parents (r�gle attach co-parent ? #158) Refs: #157, #158
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: jmartin/petitspas#157
No description provided.