fix(project) : sélection du workflow à la création + filet par défaut #29

Merged
matthieu merged 3 commits from fix/project-creation-workflow into develop 2026-06-26 14:52:45 +00:00
Owner

Problème

La création de projet échouait : Project.workflow est obligatoire (NOT NULL, FK RESTRICT, @Assert\NotNull) mais n'était jamais fourni — ni par le formulaire frontend, ni par le MCP create-project. Tout POST /api/projects partait donc en 422 (ou erreur de contrainte côté MCP).

Correctif

Backend

  • ProjectDefaultWorkflowListener (prePersist) : assigne le workflow par défaut (findDefault(), fallback 1er par position) quand aucun n'est fourni → couvre API Platform, API brute et MCP.
  • Retrait de #[Assert\NotNull] sur Project::workflow (la validation s'exécutait avant le flush et bloquait le filet) ; la contrainte DB nullable: false reste le garde-fou.
  • CreateProjectTool (MCP) : nouveau paramètre optionnel workflowId.

Frontend

  • ProjectDrawer : sélecteur Workflow affiché en création, pré-rempli sur le workflow par défaut, IRI envoyée dans le payload.

Tests

  • ProjectCreationWorkflowTest : création avec et sans workflow (201 + workflow assigné/choisi).

Vérification

  • make test : OK (219 tests)
  • php-cs-fixer : propre
  • lint:container : OK
## Problème La création de projet échouait : `Project.workflow` est obligatoire (`NOT NULL`, FK `RESTRICT`, `@Assert\NotNull`) mais n'était jamais fourni — ni par le formulaire frontend, ni par le MCP `create-project`. Tout `POST /api/projects` partait donc en 422 (ou erreur de contrainte côté MCP). ## Correctif **Backend** - `ProjectDefaultWorkflowListener` (`prePersist`) : assigne le workflow par défaut (`findDefault()`, fallback 1er par `position`) quand aucun n'est fourni → couvre API Platform, API brute et MCP. - Retrait de `#[Assert\NotNull]` sur `Project::workflow` (la validation s'exécutait avant le flush et bloquait le filet) ; la contrainte DB `nullable: false` reste le garde-fou. - `CreateProjectTool` (MCP) : nouveau paramètre optionnel `workflowId`. **Frontend** - `ProjectDrawer` : sélecteur Workflow affiché en création, pré-rempli sur le workflow par défaut, IRI envoyée dans le payload. **Tests** - `ProjectCreationWorkflowTest` : création avec et sans workflow (201 + workflow assigné/choisi). ## Vérification - `make test` : OK (219 tests) - `php-cs-fixer` : propre - `lint:container` : OK
matthieu added 1 commit 2026-06-26 14:42:48 +00:00
fix(project) : permet de choisir un workflow à la création + filet par défaut
Pull Request — Quality gate / Frontend (build) (pull_request) Successful in 38s
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 1m39s
d3abb584a9
La création de projet échouait : `Project.workflow` est obligatoire mais
n'était jamais fourni (formulaire frontend, MCP create-project), tout POST
/api/projects partait en erreur de validation/contrainte NOT NULL.

- ProjectDefaultWorkflowListener (prePersist) : assigne le workflow par
  défaut quand aucun n'est fourni, couvrant API Platform, API brute et MCP.
- retrait de l'Assert\NotNull sur Project::workflow (la validation tournait
  avant le flush et empêchait le filet) ; la contrainte DB reste le garde-fou.
- CreateProjectTool (MCP) : paramètre optionnel workflowId.
- ProjectDrawer : sélecteur Workflow en création, pré-rempli sur le défaut,
  IRI envoyée dans le payload.
- tests fonctionnels : création avec et sans workflow.
matthieu added 1 commit 2026-06-26 14:49:50 +00:00
fix(project) : erreur explicite si aucun workflow à la création au lieu d'une violation NOT NULL
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Has been cancelled
Pull Request — Quality gate / Frontend (build) (pull_request) Has been cancelled
49267ad2fb
matthieu added 1 commit 2026-06-26 14:50:11 +00:00
Merge branch 'develop' into fix/project-creation-workflow
Pull Request — Quality gate / Frontend (build) (pull_request) Successful in 1m28s
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 1m40s
8bebfe1595
matthieu merged commit f676b217bc into develop 2026-06-26 14:52:45 +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#29