fix(project) : permet de choisir un workflow à la création + filet par défaut
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.
This commit is contained in:
@@ -92,10 +92,11 @@ class Project implements ProjectInterface, TimestampableInterface, BlamableInter
|
||||
#[Groups(['project:read', 'project:write'])]
|
||||
private ?ClientInterface $client = null;
|
||||
|
||||
// workflow_id reste NOT NULL en base ; quand l'appelant n'en fournit pas,
|
||||
// ProjectDefaultWorkflowListener assigne le workflow par défaut au prePersist.
|
||||
#[ORM\ManyToOne(targetEntity: Workflow::class)]
|
||||
#[ORM\JoinColumn(nullable: false, onDelete: 'RESTRICT')]
|
||||
#[Groups(['project:read', 'project:write', 'task:read'])]
|
||||
#[Assert\NotNull(message: 'Un projet doit avoir un workflow.')]
|
||||
private ?Workflow $workflow = null;
|
||||
|
||||
#[ORM\Column(length: 255, nullable: true)]
|
||||
|
||||
Reference in New Issue
Block a user