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\TaskTag;
|
||||||
use App\Entity\TimeEntry;
|
use App\Entity\TimeEntry;
|
||||||
use App\Entity\User;
|
use App\Entity\User;
|
||||||
|
use App\Entity\Workflow;
|
||||||
use App\Entity\ZimbraConfiguration;
|
use App\Entity\ZimbraConfiguration;
|
||||||
use App\Enum\RecurrenceType;
|
use App\Enum\RecurrenceType;
|
||||||
|
use App\Enum\StatusCategory;
|
||||||
use DateTimeImmutable;
|
use DateTimeImmutable;
|
||||||
use DateTimeZone;
|
use DateTimeZone;
|
||||||
use Doctrine\Bundle\FixturesBundle\Fixture;
|
use Doctrine\Bundle\FixturesBundle\Fixture;
|
||||||
@@ -86,57 +88,31 @@ class AppFixtures extends Fixture
|
|||||||
$clientNova->setPostalCode('69007');
|
$clientNova->setPostalCode('69007');
|
||||||
$manager->persist($clientNova);
|
$manager->persist($clientNova);
|
||||||
|
|
||||||
// Projets
|
// Workflow par défaut
|
||||||
$projectSirh = new Project();
|
$standardWorkflow = new Workflow();
|
||||||
$projectSirh->setCode('SIRH');
|
$standardWorkflow->setName('Standard');
|
||||||
$projectSirh->setName('SIRH');
|
$standardWorkflow->setIsDefault(true);
|
||||||
$projectSirh->setDescription('Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer ac blandit turpis.');
|
$standardWorkflow->setPosition(0);
|
||||||
$projectSirh->setColor('#222783');
|
$manager->persist($standardWorkflow);
|
||||||
$projectSirh->setClient($clientLiot);
|
|
||||||
$manager->persist($projectSirh);
|
|
||||||
|
|
||||||
$projectCrm = new Project();
|
// Task Statuses (rattachés au workflow Standard)
|
||||||
$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)
|
|
||||||
$defaultStatuses = [
|
$defaultStatuses = [
|
||||||
['A faire', '#222783', 0],
|
['A faire', '#222783', 0, StatusCategory::Todo, false],
|
||||||
['En cours', '#4A90D9', 1],
|
['En cours', '#4A90D9', 1, StatusCategory::InProgress, false],
|
||||||
['Bloqué', '#C62828', 2],
|
['Bloqué', '#C62828', 2, StatusCategory::Blocked, false],
|
||||||
['En attente de validation', '#FF8F00', 3],
|
['En attente de validation', '#FF8F00', 3, StatusCategory::Review, false],
|
||||||
['Terminé', '#26A69A', 4],
|
['Terminé', '#26A69A', 4, StatusCategory::Done, true],
|
||||||
];
|
];
|
||||||
|
|
||||||
$statusObjects = [];
|
$statusObjects = [];
|
||||||
foreach ($defaultStatuses as [$label, $color, $position]) {
|
foreach ($defaultStatuses as [$label, $color, $position, $category, $isFinal]) {
|
||||||
$status = new TaskStatus();
|
$status = new TaskStatus();
|
||||||
$status->setLabel($label);
|
$status->setLabel($label);
|
||||||
$status->setColor($color);
|
$status->setColor($color);
|
||||||
$status->setPosition($position);
|
$status->setPosition($position);
|
||||||
if ('Terminé' === $label) {
|
$status->setCategory($category);
|
||||||
$status->setIsFinal(true);
|
$status->setIsFinal($isFinal);
|
||||||
}
|
$standardWorkflow->addStatus($status);
|
||||||
$manager->persist($status);
|
$manager->persist($status);
|
||||||
$statusObjects[$label] = $status;
|
$statusObjects[$label] = $status;
|
||||||
}
|
}
|
||||||
@@ -147,6 +123,43 @@ class AppFixtures extends Fixture
|
|||||||
$statusReview = $statusObjects['En attente de validation'];
|
$statusReview = $statusObjects['En attente de validation'];
|
||||||
$statusDone = $statusObjects['Terminé'];
|
$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
|
// Task Efforts
|
||||||
$effortS = new TaskEffort();
|
$effortS = new TaskEffort();
|
||||||
$effortS->setLabel('S');
|
$effortS->setLabel('S');
|
||||||
|
|||||||
Reference in New Issue
Block a user