2.5 KiB
2.5 KiB
Suppression groupée de contrats - Page Staff/Contrats
Résumé des modifications
Cette fonctionnalité permet au staff de supprimer plusieurs contrats en une seule opération depuis la page /staff/contrats.
Fichiers modifiés
1. components/staff/ContractsGrid.tsx
Ajouts :
- État du modal :
showDeleteModalpour contrôler l'affichage du modal de confirmation - Bouton dans le menu actions groupées : Ajout d'une option "Supprimer les contrats" en rouge dans le menu déroulant
- Modal de confirmation :
DeleteConfirmModal- nouveau composant inline qui :- Affiche un avertissement en rouge sur l'irréversibilité de l'action
- Liste les contrats qui seront supprimés
- Demande à l'utilisateur de taper "supprimer" pour confirmer
- Appelle l'API
/api/staff/contracts/bulk-delete - Gère les erreurs et affiche des notifications toast
2. app/api/staff/contracts/bulk-delete/route.ts (nouveau fichier)
Endpoint API POST qui :
- Vérifie l'authentification et les permissions staff
- Valide les IDs de contrats reçus
- Supprime les contrats de la table
cddu_contracts - Retourne la liste des IDs supprimés
- Gère les erreurs avec des messages appropriés
Fonctionnement
- L'utilisateur sélectionne un ou plusieurs contrats via les checkboxes
- Clique sur "Action groupée" → "Supprimer les contrats"
- Un modal s'ouvre avec :
- Un avertissement en rouge
- La liste des contrats à supprimer
- Un champ de confirmation où il faut taper "supprimer"
- Une fois confirmé, les contrats sont supprimés de la base de données
- La liste est automatiquement mise à jour et un toast de succès s'affiche
- La sélection est réinitialisée
Sécurité
- ✅ Vérification de l'authentification
- ✅ Vérification du statut staff
- ✅ Confirmation explicite requise (taper "supprimer")
- ✅ Avertissement visuel sur l'irréversibilité
- ✅ Séparation visuelle dans le menu (ligne de séparation + couleur rouge)
UX/UI
- Bouton en rouge pour signaler le danger
- Modal avec fond rouge pour les avertissements
- Champ de confirmation obligatoire
- Toast de succès avec le nombre de contrats supprimés
- Mise à jour immédiate de la liste sans rechargement
Tests recommandés
- Tester avec 1 contrat
- Tester avec plusieurs contrats
- Tester l'annulation
- Tester sans taper "supprimer" correctement
- Vérifier les permissions (utilisateur non-staff)
- Vérifier que les contrats sont bien supprimés de la BDD