Documentation — Tâches

Gestionnaire de tâches d'équipe : modèle de données, états et transitions, règles de retard et points d'intégration.

Modèle de données

Une tâche associe un titre (requis) à un assigné, une échéance, une priorité et un statut. La description est optionnelle ; les dates sont stockées au format ISO AAAA-MM-JJ, ce qui permet de comparer les échéances par simple ordre lexicographique.

{
  "id": "t-3",
  "titre": "Migration Postgres 16",
  "description": "Plan de bascule, répétition sur réplique.",
  "assigne": "Claire Petit",
  "echeance": "2026-06-09",      // ISO AAAA-MM-JJ
  "priorite": "haute",           // haute | normale | basse
  "statut": "À faire"            // À faire | En cours | Terminé
}

États et transitions

Le cycle de vie est linéaire et avance en un clic via le bouton contextuel de la colonne Actions :

  • À faire → En cours — bouton « Démarrer » (statut initial de toute nouvelle tâche).
  • En cours → Terminé — bouton « Terminer » ; la ligne est ensuite atténuée et le bouton d'avancement disparaît.
  • Modifier — titre, assigné, échéance et priorité restent éditables à tout moment (modale pré-remplie).
  • Supprimer — confirmation explicite (bpm.confirmModal) avant retrait définitif.

Règles de retard

Une tâche est en retard si son échéance est strictement antérieure à la date de référence et que son statut n'est pas Terminé :

// Référence déterministe du simulateur (pas de new Date() au render)
const AUJOURDHUI = "2026-06-12";

const enRetard = (t) => t.echeance < AUJOURDHUI && t.statut !== "Terminé";
  • Badge rouge « En retard » et échéance colorée dans le tableau.
  • La métrique « En retard » est recalculée à chaque action.
  • Une tâche terminée n'est jamais en retard, même si son échéance est passée ; terminer une tâche en retard la sort donc immédiatement du compteur.
  • En production, remplacer la constante par la date du jour côté serveur ou client.

Filtres

Trois filtres se combinent : statut (boutons avec compteurs), assigné (selectbox « Tous » + membres de l'équipe) et recherche plein texte sur le titre et la description. Les compteurs de statut sont calculés sur la liste déjà filtrée par assigné et recherche.

Intégration en production

Le simulateur fonctionne en local (état React seedé, 8 tâches). Pour brancher un vrai backend : exposer une API CRUD (table tasks), valider la transition de statut côté serveur, et notifier l'assigné lors d'une création ou d'une réassignation (l'équivalent des toasts du simulateur).

Tester dans le simulateur