Feature #79
closedCorriger la suppression des fichiers PDF dans la Fiche technique et l'affichage immédiat de la validation des repas
100%
## Spec — Onglet Régie : suppression PDF (Fiche technique) + validation repas
### Deux défauts liés (même surface frontend)
1. **Suppression PDF (Fiche technique)** échoue pour certains événements (surtout récents) : le fichier reste, sans erreur, résumé non mis à jour.
2. **Validation repas** : l'icône verte n'apparaît qu'après rechargement.
### Cause racine probable
Code frontend React (composants onglet Régie sous src/components/) au-dessus de base44.entities.Event (seam AppClient) + TanStack Query.
- **Repas (cache)** : la mutation de validation ne fait pas invalidateQueries / optimistic update sur la query qui alimente l'icône + le statut régie → UI périmée jusqu'au refetch manuel.
- **Suppression PDF (delete réel + cache)** : échec UNIQUEMENT sur événements récents → incohérence d'identifiant/forme de champ post-migration Base44→Prisma dans le retrait du fichier de l'Event (matching par URL vs id, liste de fichiers stockée différemment, ou écriture non persistée). Deux volets : (a) corriger le retrait effectif pour TOUS les events, (b) invalider/mettre à jour la liste + le résumé.
### Approche
1. Localiser composants Fiche technique + Repas et leurs hooks mutation/query.
2. Repas : invalidation/optimistic update dans onSuccess/onMutate.
3. PDF : reproduire l'échec sur event récent, corriger le retrait (mismatch id/champ), invalider/mettre à jour liste+résumé.
4. Ne pas avaler les erreurs (afficher message si échec).
5. Tests de non-régression Régie (ajout fichiers, modif repas) couvrant events récents + anciens.
### Critères d'acceptation
- Suppression PDF marche pour TOUS les events (y compris récents), disparition immédiate sans reload, résumé à jour, pas d'erreur silencieuse.
- Icône verte de validation repas dès le clic, statut régie en temps réel.
- Tests non-régression Régie pour events récents + anciens ; lint + typecheck verts.
### Portée : un seul lot frontend (composants Régie + chemin mutation/cache Event). Pas de découpage.
Description
### Problème
1. **Suppression des fichiers PDF dans la Fiche technique** :
- Dans l’onglet *Régie*, bloc *Fiche technique*, la suppression d’un fichier PDF ne fonctionne **que pour certains événements** (ex. : ne marche pas pour l’événement du 8 août 2026 "San Nom").
- Le fichier reste en place après la tentative de suppression, sans message d’erreur ni confirmation.
- **Contexte** : Le bug semble toucher principalement les événements créés récemment, indépendamment du nombre de fichiers PDF associés.
2. **Validation des repas** :
- Dans l’onglet *Régie*, bloc *Repas*, le bouton *Valider* ne déclenche pas l’affichage immédiat de l’icône verte de validation.
- L’icône n’apparaît qu’après actualisation manuelle de la page, ce qui nuit à l’expérience utilisateur.
### Comportement proposé
1. **Suppression des fichiers PDF** :
- Le fichier doit disparaître immédiatement après la suppression, sans actualisation de la page.
- Le résumé de l’événement doit être mis à jour en conséquence (ex. : retrait de la mention liée à la fiche technique si c’était le dernier fichier).
2. **Validation des repas** :
- L’icône verte de validation doit apparaître **dès le clic** sur le bouton *Valider*, sans nécessiter d’actualisation.
- *(Optionnel)* : Un message de confirmation temporaire (ex. : "Repas validés") pourrait s’afficher pour renforcer le feedback utilisateur.
## Acceptance criteria
['- [ ] **Suppression des fichiers PDF** :\n - La suppression d’un fichier PDF dans la *Fiche technique* fonctionne pour **tous les événements**, y compris les plus récents.\n - Le fichier disparaît immédiatement après la suppression, sans actualisation de la page.\n - Le résumé de l’événement est mis à jour (ex. : retrait de la mention liée à la fiche technique si applicable).\n - Aucun message d’erreur n’apparaît lors de la suppression.\n\n- [ ] **Validation des repas** :\n - L’icône verte de validation apparaît **dès le clic** sur le bouton *Valider*, sans actualisation de la page.\n - *(Optionnel)* : Un message de confirmation temporaire (ex. : "Repas validés") s’affiche brièvement après la validation.\n - Le statut de la régie dans le résumé de l’événement est mis à jour en temps réel (ex. : coche verte à côté de "Régie : Repas validés").\n\n- [ ] **Tests de régression** :\n - Les corrections ne doivent pas impacter d’autres fonctionnalités de l’onglet *Régie* (ex. : ajout de fichiers, modification des repas).\n - Les tests doivent couvrir des événements récents et anciens pour valider la suppression des fichiers PDF.']
## Classification
- bug
## Complexity
- 6/10 — Le score reflète la nécessité de déboguer un problème intermittent (suppression des PDF) et de corriger un comportement asynchrone (affichage de l’icône verte), tout en assurant la compatibilité avec les événements existants.
RA Updated by Redmine Admin about 2 months ago
- Status changed from Submitted to Spec
Spec en cours (factory). Transition Submitted → Spec.
RA Updated by Redmine Admin about 2 months ago
- % Done changed from 0 to 100
- spec_ref updated (diff)
**Spec terminée** — pas de découpage. Deux défauts liés (cache TanStack Query non invalidé + bug delete sur events récents). `spec_ref` renseigné, `done_ratio=100`. Reste à **Spec** (bug → pas de design).
RA Updated by Redmine Admin about 2 months ago
- Status changed from Spec to In development
- branch set to fix/79-regie-fixes
Dev démarré (worktree isolé, branche `fix/79-regie-fixes` sur `origin/dev`). Spec → In development.
RA Updated by Redmine Admin about 2 months ago
- Status changed from In development to QA
- pr_url set to https://github.com/Scobby-organisation/scobby/pull/4
PR #4 mergée dans `dev` (squash), CI Jenkins verte. In development → QA. Gates : vitest 4/4 (tests RTL), server typecheck, lint, build verts. Validation comportementale (suppression PDF / icône repas en conditions réelles) à confirmer en préprod.
RA Updated by Redmine Admin about 2 months ago
- Status changed from QA to Preprod
Déployé en préprod (https://preprod-scobby.omdev.tech). Passage QA → Preprod.
RA Updated by Redmine Admin about 1 month ago
- Status changed from Preprod to Ready to ship
Livré sur master (dev = preprod = master). Commit `13faa243` (PR #4) — fix(regie): suppression PDF fiche technique + validation repas instantanée. Passage en **Ready to ship** — *Shipped* après confirmation du gate prod manuel (Jenkins) sur scobby.fr.
RA Updated by Redmine Admin about 1 month ago
- Status changed from Ready to ship to Shipped
- deploy_status set to deployed
- deployed_at set to 06/23/2026
Déploiement PROD confirmé live sur scobby.fr (gate manuel Jenkins approuvé le 2026-06-23). Passage en **Shipped**.