feat(notification) : recâbler les notifications sur les événements de tâche #10

Merged
matthieu merged 4 commits from feat/task-notifications into develop 2026-06-15 09:52:01 +00:00
Owner

Contexte

Le système de notifications était une coquille vide depuis la suppression du portail client (commit 2a0b202) : entité, provider, controllers et cloche front existaient toujours, mais plus aucun producteur ne créait de notification (le seul producteur, NotificationService, dépendait des ClientTicket supprimés). La cloche pollait /notifications/unread-count dans le vide → compteur figé à 0.

Changements

Ajout d'un unique TaskNotificationListener (Doctrine onFlush/postFlush) qui crée une notification quand :

  • une tâche est assignée à un utilisateur (task_assigned) ;
  • un utilisateur est ajouté comme collaborateur (task_collaborator_added).

Règles : auto-exclusion (pas de notification si l'acteur est le destinataire), pas de notification sans acteur authentifié (évite le bruit des fixtures/CLI). Branché au niveau Doctrine → couvre tous les chemins d'écriture (API Platform et MCP).

Aucune migration, aucune entité modifiée, aucun changement frontend (la cloche consomme déjà l'API).

Tests

7 tests fonctionnels dédiés (assignation, auto-assignation, réassignation A→B, passage à null, absence d'acteur, ajout collaborateur, auto-collaborateur) — tous verts. Suite complète : 96 tests OK.

Docs

Spec et plan dans docs/superpowers/.

## Contexte Le système de notifications était une coquille vide depuis la suppression du portail client (commit `2a0b202`) : entité, provider, controllers et cloche front existaient toujours, mais plus aucun producteur ne créait de notification (le seul producteur, `NotificationService`, dépendait des `ClientTicket` supprimés). La cloche pollait `/notifications/unread-count` dans le vide → compteur figé à 0. ## Changements Ajout d'un unique `TaskNotificationListener` (Doctrine `onFlush`/`postFlush`) qui crée une notification quand : - une tâche est assignée à un utilisateur (`task_assigned`) ; - un utilisateur est ajouté comme collaborateur (`task_collaborator_added`). Règles : auto-exclusion (pas de notification si l'acteur est le destinataire), pas de notification sans acteur authentifié (évite le bruit des fixtures/CLI). Branché au niveau Doctrine → couvre tous les chemins d'écriture (API Platform et MCP). Aucune migration, aucune entité modifiée, aucun changement frontend (la cloche consomme déjà l'API). ## Tests 7 tests fonctionnels dédiés (assignation, auto-assignation, réassignation A→B, passage à null, absence d'acteur, ajout collaborateur, auto-collaborateur) — tous verts. Suite complète : 96 tests OK. ## Docs Spec et plan dans `docs/superpowers/`.
matthieu added 3 commits 2026-06-15 09:49:23 +00:00
matthieu added 1 commit 2026-06-15 09:51:54 +00:00
matthieu merged commit 16748cce40 into develop 2026-06-15 09:52:01 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: MALIO-DEV/Lesstime#10