From 96a9f988c46284f17734a6c91d3a61ce2aa503c7 Mon Sep 17 00:00:00 2001 From: Matthieu Date: Thu, 12 Mar 2026 17:58:55 +0100 Subject: [PATCH] =?UTF-8?q?feat(backend)=20:=20set=20isFinal=20on=20Termin?= =?UTF-8?q?=C3=A9=20status=20in=20fixtures?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.6 --- src/DataFixtures/AppFixtures.php | 87 ++++++++++++++++++-------------- 1 file changed, 50 insertions(+), 37 deletions(-) diff --git a/src/DataFixtures/AppFixtures.php b/src/DataFixtures/AppFixtures.php index 6eb83fb..a675483 100644 --- a/src/DataFixtures/AppFixtures.php +++ b/src/DataFixtures/AppFixtures.php @@ -11,7 +11,7 @@ use App\Entity\TaskEffort; use App\Entity\TaskGroup; use App\Entity\TaskPriority; use App\Entity\TaskStatus; -use App\Entity\TaskType; +use App\Entity\TaskTag; use App\Entity\TimeEntry; use App\Entity\User; use DateTimeImmutable; @@ -65,6 +65,7 @@ class AppFixtures extends Fixture // Projets $projectSirh = new Project(); + $projectSirh->setCode('SIRH'); $projectSirh->setName('SIRH'); $projectSirh->setDescription('Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer ac blandit turpis.'); $projectSirh->setColor('#222783'); @@ -72,6 +73,7 @@ class AppFixtures extends Fixture $manager->persist($projectSirh); $projectCrm = new Project(); + $projectCrm->setCode('CRM'); $projectCrm->setName('CRM'); $projectCrm->setDescription('Gestion de la relation client et suivi commercial.'); $projectCrm->setColor('#E91E63'); @@ -79,6 +81,7 @@ class AppFixtures extends Fixture $manager->persist($projectCrm); $projectErp = new Project(); + $projectErp->setCode('ERP'); $projectErp->setName('ERP'); $projectErp->setDescription('Planification des ressources et gestion des stocks.'); $projectErp->setColor('#4A90D9'); @@ -86,6 +89,7 @@ class AppFixtures extends Fixture $manager->persist($projectErp); $projectInterne = new Project(); + $projectInterne->setCode('SITE'); $projectInterne->setName('Site vitrine'); $projectInterne->setDescription('Refonte du site web corporate.'); $projectInterne->setColor('#26A69A'); @@ -107,6 +111,9 @@ class AppFixtures extends Fixture $status->setLabel($label); $status->setColor($color); $status->setPosition($position); + if ('Terminé' === $label) { + $status->setIsFinal(true); + } $manager->persist($status); $statusObjects[$label] = $status; } @@ -154,21 +161,21 @@ class AppFixtures extends Fixture $priorityHigh->setColor('#C62828'); $manager->persist($priorityHigh); - // Task Types - $typePassword = new TaskType(); - $typePassword->setLabel('Gestion mdp'); - $typePassword->setColor('#C62828'); - $manager->persist($typePassword); + // Task Tags + $tagPassword = new TaskTag(); + $tagPassword->setLabel('Gestion mdp'); + $tagPassword->setColor('#C62828'); + $manager->persist($tagPassword); - $typeAuth = new TaskType(); - $typeAuth->setLabel('Connexion'); - $typeAuth->setColor('#FF8F00'); - $manager->persist($typeAuth); + $tagAuth = new TaskTag(); + $tagAuth->setLabel('Connexion'); + $tagAuth->setColor('#FF8F00'); + $manager->persist($tagAuth); - $typeCalendar = new TaskType(); - $typeCalendar->setLabel('Calendrier'); - $typeCalendar->setColor('#222783'); - $manager->persist($typeCalendar); + $tagCalendar = new TaskTag(); + $tagCalendar->setLabel('Calendrier'); + $tagCalendar->setColor('#222783'); + $manager->persist($tagCalendar); // Task Groups $groupFrontend = new TaskGroup(); @@ -185,6 +192,7 @@ class AppFixtures extends Fixture // Tasks $task1 = new Task(); + $task1->setNumber(1); $task1->setTitle('Création d\'une page de login'); $task1->setStatus($statusTodo); $task1->setEffort($effortXXL); @@ -192,73 +200,78 @@ class AppFixtures extends Fixture $task1->setAssignee($admin); $task1->setGroup($groupFrontend); $task1->setProject($projectSirh); - $task1->addType($typePassword); + $task1->addTag($tagPassword); $manager->persist($task1); $task2 = new Task(); - $task2->setTitle('Création d\'une page de login'); + $task2->setNumber(2); + $task2->setTitle('Intégration SSO'); $task2->setStatus($statusTodo); $task2->setEffort($effortL); $task2->setPriority($priorityHigh); $task2->setAssignee($admin); $task2->setGroup($groupFrontend); $task2->setProject($projectSirh); - $task2->addType($typeAuth); + $task2->addTag($tagAuth); $manager->persist($task2); $task3 = new Task(); - $task3->setTitle('Création d\'une page de login'); + $task3->setNumber(3); + $task3->setTitle('API d\'authentification'); $task3->setStatus($statusInProgress); $task3->setEffort($effortXXL); $task3->setPriority($priorityLow); $task3->setAssignee($admin); $task3->setGroup($groupBackend); $task3->setProject($projectSirh); - $task3->addType($typePassword); + $task3->addTag($tagPassword); $manager->persist($task3); $task4 = new Task(); - $task4->setTitle('Création d\'une page de login'); + $task4->setNumber(4); + $task4->setTitle('Gestion des tokens JWT'); $task4->setStatus($statusBlocked); $task4->setEffort($effortXXL); $task4->setPriority($priorityLow); $task4->setAssignee($admin); $task4->setProject($projectSirh); - $task4->addType($typePassword); + $task4->addTag($tagPassword); $manager->persist($task4); $task5 = new Task(); - $task5->setTitle('Création d\'une page de login'); + $task5->setNumber(5); + $task5->setTitle('Calendrier des congés'); $task5->setStatus($statusReview); $task5->setEffort($effortXXL); $task5->setPriority($priorityMedium); $task5->setAssignee($admin); $task5->setProject($projectSirh); - $task5->addType($typeCalendar); + $task5->addTag($tagCalendar); $manager->persist($task5); $task6 = new Task(); - $task6->setTitle('Création d\'une page de login'); + $task6->setNumber(6); + $task6->setTitle('Page de réinitialisation mdp'); $task6->setStatus($statusDone); $task6->setEffort($effortXXL); $task6->setPriority($priorityHigh); $task6->setAssignee($admin); $task6->setProject($projectSirh); - $task6->addType($typeAuth); + $task6->addTag($tagAuth); $manager->persist($task6); // --- Time Entries (SIRH project, admin user) --- $timeEntryData = [ - ['title' => 'Réunion', 'project' => $projectSirh, 'type' => $typeAuth, 'start' => '09:00', 'stop' => '09:45', 'day' => 1], - ['title' => 'Page accueil', 'project' => $projectSirh, 'type' => $typePassword, 'start' => '10:00', 'stop' => '12:00', 'day' => 0], - ['title' => 'Design admin', 'project' => $projectSirh, 'type' => $typeAuth, 'start' => '09:30', 'stop' => '11:00', 'day' => 2], - ['title' => 'Page accueil', 'project' => $projectSirh, 'type' => $typePassword, 'start' => '10:30', 'stop' => '12:15', 'day' => 1], - ['title' => 'System os', 'project' => $projectSirh, 'type' => $typeCalendar, 'start' => '13:00', 'stop' => '15:30', 'day' => 0], - ['title' => 'Login', 'project' => $projectSirh, 'type' => $typePassword, 'start' => '13:00', 'stop' => '15:00', 'day' => 1], - ['title' => 'Script vault', 'project' => $projectSirh, 'type' => $typeCalendar, 'start' => '10:00', 'stop' => '12:00', 'day' => 3], - ['title' => 'Script backup BDD', 'project' => $projectSirh, 'type' => $typeAuth, 'start' => '13:30', 'stop' => '15:00', 'day' => 3], - ['title' => 'Maquette', 'project' => $projectSirh, 'type' => null, 'start' => '09:00', 'stop' => '11:00', 'day' => 4], - ['title' => 'PC compta', 'project' => $projectSirh, 'type' => null, 'start' => '13:30', 'stop' => '15:30', 'day' => 4], + ['title' => 'Réunion', 'project' => $projectSirh, 'tag' => $tagAuth, 'start' => '09:00', 'stop' => '09:45', 'day' => 1], + ['title' => 'Page accueil', 'project' => $projectSirh, 'tag' => $tagPassword, 'start' => '10:00', 'stop' => '12:00', 'day' => 0], + ['title' => 'Design admin', 'project' => $projectSirh, 'tag' => $tagAuth, 'start' => '09:30', 'stop' => '11:00', 'day' => 2], + ['title' => 'Page accueil', 'project' => $projectSirh, 'tag' => $tagPassword, 'start' => '10:30', 'stop' => '12:15', 'day' => 1], + ['title' => 'System os', 'project' => $projectSirh, 'tag' => $tagCalendar, 'start' => '13:00', 'stop' => '15:30', 'day' => 0], + ['title' => 'Login', 'project' => $projectSirh, 'tag' => $tagPassword, 'start' => '13:00', 'stop' => '15:00', 'day' => 1], + ['title' => 'Script vault', 'project' => $projectSirh, 'tag' => $tagCalendar, 'start' => '10:00', 'stop' => '12:00', 'day' => 3], + ['title' => 'Script backup BDD', 'project' => $projectSirh, 'tag' => $tagAuth, 'start' => '13:30', 'stop' => '15:00', 'day' => 3], + ['title' => 'Maquette', 'project' => $projectSirh, 'tag' => null, 'start' => '09:00', 'stop' => '11:00', 'day' => 4], + ['title' => 'PC compta', 'project' => $projectSirh, 'tag' => null, 'start' => '13:30', 'stop' => '15:30', 'day' => 4], ]; $monday = new DateTimeImmutable('monday this week', new DateTimeZone('UTC')); @@ -270,8 +283,8 @@ class AppFixtures extends Fixture $entry->setProject($data['project']); $entry->setStartedAt($monday->modify("+{$data['day']} days")->modify($data['start'])); $entry->setStoppedAt($monday->modify("+{$data['day']} days")->modify($data['stop'])); - if ($data['type']) { - $entry->addType($data['type']); + if ($data['tag']) { + $entry->addTag($data['tag']); } $manager->persist($entry); }