espace-paie-odentas/BULK_DELETE_CONTRATS.md

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 : showDeleteModal pour 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

  1. L'utilisateur sélectionne un ou plusieurs contrats via les checkboxes
  2. Clique sur "Action groupée" → "Supprimer les contrats"
  3. Un modal s'ouvre avec :
    • Un avertissement en rouge
    • La liste des contrats à supprimer
    • Un champ de confirmation où il faut taper "supprimer"
  4. Une fois confirmé, les contrats sont supprimés de la base de données
  5. La liste est automatiquement mise à jour et un toast de succès s'affiche
  6. 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

  1. Tester avec 1 contrat
  2. Tester avec plusieurs contrats
  3. Tester l'annulation
  4. Tester sans taper "supprimer" correctement
  5. Vérifier les permissions (utilisateur non-staff)
  6. Vérifier que les contrats sont bien supprimés de la BDD