fix(front) : suppression des sous-ressources (contacts / adresses / RIB) en modification (ERP-172) #109

Merged
tristan merged 1 commits from fix/ERP-172-suppression-sous-ressources-modification into develop 2026-06-15 15:08:48 +00:00
Owner

Contexte (ERP-172)

Sur les ecrans de modification, supprimer un bloc Contact / Adresse / RIB ne supprimait pas la sous-ressource cote serveur :

  • M1 / M2 : DELETE differe au clic « Enregistrer » de l'onglet -> ne partait jamais si l'utilisateur ne re-validait pas.
  • M3 : aucun DELETE (splice local uniquement).

Correctifs

1. DELETE immediat des sous-ressources

  • Nouveau helper partage frontend/shared/utils/collectionRow.ts (removeCollectionRow) + tests Vitest.
  • A la confirmation de la modale : bloc existant (id en base) -> DELETE immediat ; bloc jamais persiste -> retrait local ; echec serveur (ex. 409 dernier RIB d'une LCR) -> bloc conserve + message back.
  • Branche sur M1 / M2 / M3 (contacts / adresses / RIB). Suppression du mecanisme differe (removed*Ids + boucles dans submit*) devenu mort.

2. Affichage de la poubelle unifie (isRowRemovable)

Regle identique sur les 3 modules : poubelle visible sur un bloc seulement s'il reste un autre bloc deja enregistre (id en base).

  • Tant que rien n'est enregistre -> aucune poubelle (plus de suppression d'un simple brouillon non valide).
  • On peut jeter un brouillon non enregistre s'il reste un bloc enregistre.
  • On ne peut jamais supprimer son dernier bloc enregistre.
  • Applique aux ecrans new + edit des 3 modules (contacts / adresses / RIB).

Tests

  • Helper couvert par Vitest (removeCollectionRow + isRowRemovable).
  • make nuxt-test : 480 tests OK. make nuxt-lint : OK.

A verifier (golden path)

Sur les 3 modules : supprimer un bloc existant -> DELETE part immediatement -> reload -> le bloc a disparu ; la poubelle n'apparait qu'avec un 2e bloc deja enregistre.

## Contexte (ERP-172) Sur les ecrans de **modification**, supprimer un bloc Contact / Adresse / RIB ne supprimait pas la sous-ressource cote serveur : - **M1 / M2** : DELETE differe au clic « Enregistrer » de l'onglet -> ne partait jamais si l'utilisateur ne re-validait pas. - **M3** : aucun DELETE (`splice` local uniquement). ## Correctifs ### 1. DELETE immediat des sous-ressources - Nouveau helper partage `frontend/shared/utils/collectionRow.ts` (`removeCollectionRow`) + tests Vitest. - A la confirmation de la modale : bloc existant (`id` en base) -> `DELETE` immediat ; bloc jamais persiste -> retrait local ; echec serveur (ex. 409 dernier RIB d'une LCR) -> bloc conserve + message back. - Branche sur M1 / M2 / M3 (contacts / adresses / RIB). Suppression du mecanisme differe (`removed*Ids` + boucles dans `submit*`) devenu mort. ### 2. Affichage de la poubelle unifie (`isRowRemovable`) Regle identique sur les 3 modules : poubelle visible sur un bloc **seulement s'il reste un autre bloc deja enregistre** (`id` en base). - Tant que rien n'est enregistre -> aucune poubelle (plus de suppression d'un simple brouillon non valide). - On peut jeter un brouillon non enregistre s'il reste un bloc enregistre. - On ne peut jamais supprimer son dernier bloc enregistre. - Applique aux ecrans **new + edit** des 3 modules (contacts / adresses / RIB). ## Tests - Helper couvert par Vitest (`removeCollectionRow` + `isRowRemovable`). - `make nuxt-test` : 480 tests OK. `make nuxt-lint` : OK. ## A verifier (golden path) Sur les 3 modules : supprimer un bloc existant -> `DELETE` part immediatement -> reload -> le bloc a disparu ; la poubelle n'apparait qu'avec un 2e bloc deja enregistre.
tristan added the type/fixfrontM1-ClientM2-FournisseurM3-Prestataire labels 2026-06-15 14:53:15 +00:00
tristan added 1 commit 2026-06-15 14:53:15 +00:00
fix(front) : suppression immediate des sous-ressources + regle poubelle (ERP-172)
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 2m37s
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 1m25s
e3421ac4c8
- DELETE immediat des sous-ressources (contacts / adresses / RIB) a la
  confirmation de la modale sur les ecrans de modification M1 / M2 / M3,
  au lieu d'un DELETE differe qui ne partait jamais sans re-validation de
  l'onglet. Helper partage removeCollectionRow (+ tests) ; le mecanisme
  differe (removed*Ids + boucles dans submit*) devenu mort est supprime.

- Affichage de la poubelle des blocs de collection unifie sur les 3 modules
  via isRowRemovable : visible seulement s'il reste un AUTRE bloc deja
  enregistre (id en base). Empeche de supprimer un bloc tant que rien n'est
  sauvegarde, et de supprimer son dernier bloc enregistre. Applique aux
  ecrans new + edit (contacts / adresses / RIB).
tristan merged commit 45cb5c834c into develop 2026-06-15 15:08:48 +00:00
tristan deleted branch fix/ERP-172-suppression-sous-ressources-modification 2026-06-15 15:08:48 +00:00
Sign in to join this conversation.