feat(backend) : set isFinal on Terminé status in fixtures
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user