feat(workflow) : fixtures - workflow Standard + statuts catégorisés + projets attachés
This commit is contained in:
@@ -16,8 +16,10 @@ use App\Entity\TaskStatus;
|
||||
use App\Entity\TaskTag;
|
||||
use App\Entity\TimeEntry;
|
||||
use App\Entity\User;
|
||||
use App\Entity\Workflow;
|
||||
use App\Entity\ZimbraConfiguration;
|
||||
use App\Enum\RecurrenceType;
|
||||
use App\Enum\StatusCategory;
|
||||
use DateTimeImmutable;
|
||||
use DateTimeZone;
|
||||
use Doctrine\Bundle\FixturesBundle\Fixture;
|
||||
@@ -86,57 +88,31 @@ class AppFixtures extends Fixture
|
||||
$clientNova->setPostalCode('69007');
|
||||
$manager->persist($clientNova);
|
||||
|
||||
// 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');
|
||||
$projectSirh->setClient($clientLiot);
|
||||
$manager->persist($projectSirh);
|
||||
// Workflow par défaut
|
||||
$standardWorkflow = new Workflow();
|
||||
$standardWorkflow->setName('Standard');
|
||||
$standardWorkflow->setIsDefault(true);
|
||||
$standardWorkflow->setPosition(0);
|
||||
$manager->persist($standardWorkflow);
|
||||
|
||||
$projectCrm = new Project();
|
||||
$projectCrm->setCode('CRM');
|
||||
$projectCrm->setName('CRM');
|
||||
$projectCrm->setDescription('Gestion de la relation client et suivi commercial.');
|
||||
$projectCrm->setColor('#E91E63');
|
||||
$projectCrm->setClient($clientAcme);
|
||||
$manager->persist($projectCrm);
|
||||
|
||||
$projectErp = new Project();
|
||||
$projectErp->setCode('ERP');
|
||||
$projectErp->setName('ERP');
|
||||
$projectErp->setDescription('Planification des ressources et gestion des stocks.');
|
||||
$projectErp->setColor('#4A90D9');
|
||||
$projectErp->setClient($clientNova);
|
||||
$manager->persist($projectErp);
|
||||
|
||||
$projectInterne = new Project();
|
||||
$projectInterne->setCode('SITE');
|
||||
$projectInterne->setName('Site vitrine');
|
||||
$projectInterne->setDescription('Refonte du site web corporate.');
|
||||
$projectInterne->setColor('#26A69A');
|
||||
$projectInterne->setClient(null);
|
||||
$manager->persist($projectInterne);
|
||||
|
||||
// Task Statuses (global)
|
||||
// Task Statuses (rattachés au workflow Standard)
|
||||
$defaultStatuses = [
|
||||
['A faire', '#222783', 0],
|
||||
['En cours', '#4A90D9', 1],
|
||||
['Bloqué', '#C62828', 2],
|
||||
['En attente de validation', '#FF8F00', 3],
|
||||
['Terminé', '#26A69A', 4],
|
||||
['A faire', '#222783', 0, StatusCategory::Todo, false],
|
||||
['En cours', '#4A90D9', 1, StatusCategory::InProgress, false],
|
||||
['Bloqué', '#C62828', 2, StatusCategory::Blocked, false],
|
||||
['En attente de validation', '#FF8F00', 3, StatusCategory::Review, false],
|
||||
['Terminé', '#26A69A', 4, StatusCategory::Done, true],
|
||||
];
|
||||
|
||||
$statusObjects = [];
|
||||
foreach ($defaultStatuses as [$label, $color, $position]) {
|
||||
foreach ($defaultStatuses as [$label, $color, $position, $category, $isFinal]) {
|
||||
$status = new TaskStatus();
|
||||
$status->setLabel($label);
|
||||
$status->setColor($color);
|
||||
$status->setPosition($position);
|
||||
if ('Terminé' === $label) {
|
||||
$status->setIsFinal(true);
|
||||
}
|
||||
$status->setCategory($category);
|
||||
$status->setIsFinal($isFinal);
|
||||
$standardWorkflow->addStatus($status);
|
||||
$manager->persist($status);
|
||||
$statusObjects[$label] = $status;
|
||||
}
|
||||
@@ -147,6 +123,43 @@ class AppFixtures extends Fixture
|
||||
$statusReview = $statusObjects['En attente de validation'];
|
||||
$statusDone = $statusObjects['Terminé'];
|
||||
|
||||
// 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');
|
||||
$projectSirh->setClient($clientLiot);
|
||||
$projectSirh->setWorkflow($standardWorkflow);
|
||||
$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');
|
||||
$projectCrm->setClient($clientAcme);
|
||||
$projectCrm->setWorkflow($standardWorkflow);
|
||||
$manager->persist($projectCrm);
|
||||
|
||||
$projectErp = new Project();
|
||||
$projectErp->setCode('ERP');
|
||||
$projectErp->setName('ERP');
|
||||
$projectErp->setDescription('Planification des ressources et gestion des stocks.');
|
||||
$projectErp->setColor('#4A90D9');
|
||||
$projectErp->setClient($clientNova);
|
||||
$projectErp->setWorkflow($standardWorkflow);
|
||||
$manager->persist($projectErp);
|
||||
|
||||
$projectInterne = new Project();
|
||||
$projectInterne->setCode('SITE');
|
||||
$projectInterne->setName('Site vitrine');
|
||||
$projectInterne->setDescription('Refonte du site web corporate.');
|
||||
$projectInterne->setColor('#26A69A');
|
||||
$projectInterne->setClient(null);
|
||||
$projectInterne->setWorkflow($standardWorkflow);
|
||||
$manager->persist($projectInterne);
|
||||
|
||||
// Task Efforts
|
||||
$effortS = new TaskEffort();
|
||||
$effortS->setLabel('S');
|
||||
|
||||
Reference in New Issue
Block a user