diff --git a/src/Bundle/ChillAsideActivityBundle/src/DataFixtures/LoadAsideActivity.php b/src/Bundle/ChillAsideActivityBundle/src/DataFixtures/LoadAsideActivity.php deleted file mode 100644 index 04163119a..000000000 --- a/src/Bundle/ChillAsideActivityBundle/src/DataFixtures/LoadAsideActivity.php +++ /dev/null @@ -1,91 +0,0 @@ -faker = FakerFactory::create('fr_FR'); - } - - public function getOrder() - { - return 16400; - } - - /** - * Return a random asideActivityCategory - * - * @return \Chill\AsideActivityBundle\Entity\AsideActivityCategory - */ - private function getRandomAsideActivityCategory() - { - $catRef = LoadAsideActivityCategory::$references[array_rand(LoadAsideActivityCategory::$references)]; - return $this->getReference($catRef); - } - - /** - * Return a random user - * - * @return \Chill\MainBundle\Entity\User - */ - private function getRandomUser() - { - $userRef = array_rand(LoadUsers::$refs); - return $this->getReference($userRef); - } - - public function newRandomActivity() - { - $asideactivity = (new AsideActivity()) - ->setAgent($this->getRandomUser()) - ->setDate($this->faker->dateTimeThisYear()) - ->setDuration($this->faker->dateTime(36000)) - ->setType($this->getRandomAsideActivityCategory()); - - return $asideactivity; - } - - public function load(ObjectManager $manager) - { - $users = $this->container->get('doctrine.orm.entity_manager') - ->getRepository('ChillMainBundle:User') - ->findAll(); - - foreach($users as $user) { - $activityNbr = rand(0,3); - $ref = 'activity_'.$user->getUsernameCanonical(); - - for($i = 0; $i < $activityNbr; $i ++) { - print "Creating an aside activity for : ".$user." (ref: ".$ref.") \n"; - $asideactivity = $this->newRandomActivity($user); - $manager->persist($asideactivity); - } - - $this->setReference($ref, $asideactivity); - } - $manager->flush(); - } -} diff --git a/src/Bundle/ChillAsideActivityBundle/src/DataFixtures/LoadAsideActivityCategory.php b/src/Bundle/ChillAsideActivityBundle/src/DataFixtures/LoadAsideActivityCategory.php deleted file mode 100644 index 8df2ec5f9..000000000 --- a/src/Bundle/ChillAsideActivityBundle/src/DataFixtures/LoadAsideActivityCategory.php +++ /dev/null @@ -1,53 +0,0 @@ - ['fr' => 'Formation', 'en' => 'Training'], - 'ref' => 'training', - ], - [ - 'title' => ['fr' => 'Team building', 'en' => 'Team building'], - 'ref' => 'teambuilding', - ], - ]; - - foreach ($categories as $cat) { - print "Creating aside activity type category : " . $cat['ref'] . "\n"; - - $newCat = (new AsideActivityCategory()) - ->setTitle(($cat['title'])); - - $manager->persist($newCat); - $reference = 'activity_type_cat_'.$cat['ref']; - - $this->addReference($reference, $newCat); - static::$references[] = $reference; - } - - $manager->flush(); - } -} \ No newline at end of file diff --git a/src/Bundle/ChillAsideActivityBundle/src/DataFixtures/ORM/LoadAsideActivity.php b/src/Bundle/ChillAsideActivityBundle/src/DataFixtures/ORM/LoadAsideActivity.php index a3de01baf..2764db282 100644 --- a/src/Bundle/ChillAsideActivityBundle/src/DataFixtures/ORM/LoadAsideActivity.php +++ b/src/Bundle/ChillAsideActivityBundle/src/DataFixtures/ORM/LoadAsideActivity.php @@ -2,99 +2,50 @@ namespace Chill\AsideActivityBundle\DataFixtures\ORM; -use Doctrine\Common\DataFixtures\AbstractFixture; -use Doctrine\Common\DataFixtures\OrderedFixtureInterface; -use Doctrine\Persistence\ObjectManager; -use Faker\Factory as FakerFactory; -use Chill\MainBundle\DataFixtures\ORM\LoadUsers; -use Chill\AsideActivityBundle\DataFixtures\ORM\LoadAsideActivityCategory; use Chill\AsideActivityBundle\Entity\AsideActivity; -use Chill\AsideActivityBundle\Entity\AsideActivityCategory; -use Chill\MainBundle\Entity\User; +use Chill\MainBundle\DataFixtures\ORM\LoadUsers; use Chill\MainBundle\Repository\UserRepository; -use DateTime; -use Doctrine\Bundle\FixturesBundle\FixtureGroupInterface; +use Doctrine\Bundle\FixturesBundle\Fixture; use Doctrine\Common\DataFixtures\DependentFixtureInterface; -use Symfony\Component\DependencyInjection\ContainerAwareInterface; +use Doctrine\Persistence\ObjectManager; -/** - * Load reports into DB - * - * @author Champs-Libres Coop - */ -class LoadAsideActivity extends AbstractFixture implements DependentFixtureInterface, ContainerAwareInterface +class LoadAsideActivity extends Fixture implements DependentFixtureInterface { - use \Symfony\Component\DependencyInjection\ContainerAwareTrait; - - /** - * @var \Faker\Generator - */ - private $faker; - - private array $cacheUsers = []; - private UserRepository $userRepository; public function __construct(UserRepository $userRepository) { - $this->faker = FakerFactory::create('fr_FR'); $this->userRepository = $userRepository; } - public function getDependencies() + public function getDependencies(): array { return [ - LoadAsideActivityCategory::class, LoadUsers::class, + LoadAsideActivityCategory::class ]; } - /** - * Return a random asideActivityCategory - * - * @return \Chill\AsideActivityBundle\Entity\AsideActivityCategory - */ - private function getRandomAsideActivityCategory(): AsideActivityCategory - { - $catRef = LoadAsideActivityCategory::$references[array_rand(LoadAsideActivityCategory::$references)]; - - return $this->getReference($catRef); - } - - /** - * Return a random user - * - * @return \Chill\MainBundle\Entity\User - */ - private function getRandomUser(): User - { - if (0 === count($this->cacheUsers)){ - $this->cacheUsers = $this->container->get('doctrine.orm.entity_manager') - ->getRepository('ChillMainBundle:User') - ->findAll(); - } - - return $this->cacheUsers[array_rand($this->cacheUsers)]; - } - - public function newRandomActivity() - { - $asideactivity = ($activity = new AsideActivity()) - ->setAgent($this->getRandomUser()) - ->setDate($this->faker->dateTimeThisYear()) - ->setCreatedAt(new DateTime()) - ->setCreatedBy($activity->getAgent()) - //->setDuration(3600) - ->setType($this->getRandomAsideActivityCategory()); - - return $asideactivity; - } - public function load(ObjectManager $manager) { - for($i = 0; $i < 100; $i ++) { - $asideactivity = $this->newRandomActivity(); - $manager->persist($asideactivity); + $user = $this->userRepository->findOneBy(['username' => 'center a_social']); + + for ($i = 0; $i < 50; $i++) { + $activity = new AsideActivity(); + $activity + ->setAgent($user) + ->setCreatedAt(new \DateTimeImmutable('now')) + ->setCreatedBy($user) + ->setUpdatedAt(new \DateTimeImmutable('now')) + ->setUpdatedBy($user) + ->setType( + $this->getReference('aside_activity_category_0') + ) + ->setDate((new \DateTimeImmutable('today')) + ->sub(new \DateInterval('P'.\random_int(1, 100).'D'))) + ; + + $manager->persist($activity); } $manager->flush(); diff --git a/src/Bundle/ChillAsideActivityBundle/src/DataFixtures/ORM/LoadAsideActivityCategory.php b/src/Bundle/ChillAsideActivityBundle/src/DataFixtures/ORM/LoadAsideActivityCategory.php index 76b6e3ff3..497b260ad 100644 --- a/src/Bundle/ChillAsideActivityBundle/src/DataFixtures/ORM/LoadAsideActivityCategory.php +++ b/src/Bundle/ChillAsideActivityBundle/src/DataFixtures/ORM/LoadAsideActivityCategory.php @@ -1,50 +1,24 @@ ['fr' => 'Formation', 'en' => 'Training'], - 'ref' => 'training', - ], - [ - 'title' => ['fr' => 'Team building', 'en' => 'Team building'], - 'ref' => 'teambuilding', - ], - ]; - - foreach ($categories as $cat) { - print "Creating aside activity type category : " . $cat['ref'] . "\n"; - - $newCat = (new AsideActivityCategory()) - ->setTitle(($cat['title'])); - - $manager->persist($newCat); - $reference = 'activity_type_cat_'.$cat['ref']; - - $this->addReference($reference, $newCat); - static::$references[] = $reference; + foreach ([ + 'Appel téléphonique', + 'Formation' + ] as $key => $label) { + $category = new AsideActivityCategory(); + $category->setTitle(['fr' => $label]); + $manager->persist($category); + $this->setReference('aside_activity_category_'.$key, $category); } $manager->flush(); } -} \ No newline at end of file +} diff --git a/src/Bundle/ChillAsideActivityBundle/src/config/services.yaml b/src/Bundle/ChillAsideActivityBundle/src/config/services.yaml index e69de29bb..8ff656fdc 100644 --- a/src/Bundle/ChillAsideActivityBundle/src/config/services.yaml +++ b/src/Bundle/ChillAsideActivityBundle/src/config/services.yaml @@ -0,0 +1,5 @@ +services: + Chill\AsideActivityBundle\DataFixtures\: + resource: './../DataFixtures' + autowire: true + autoconfigure: true diff --git a/src/Bundle/ChillMainBundle/DataFixtures/ORM/LoadUsers.php b/src/Bundle/ChillMainBundle/DataFixtures/ORM/LoadUsers.php index 21b9341c7..02f1bfd18 100644 --- a/src/Bundle/ChillMainBundle/DataFixtures/ORM/LoadUsers.php +++ b/src/Bundle/ChillMainBundle/DataFixtures/ORM/LoadUsers.php @@ -15,7 +15,7 @@ use Symfony\Component\Security\Core\Encoder\MessageDigestPasswordEncoder; /** * Load fixtures users into database - * + * * create a user for each permission_group and center. * username and password are identicals. * @@ -28,12 +28,12 @@ class LoadUsers extends AbstractFixture implements OrderedFixtureInterface, Cont * @var ContainerInterface */ private $container; - + public function getOrder() { return 1000; } - + public static $refs = array( 'center a_social' => array( 'groupCenterRefs' => ['centerA_permission_group_social'] @@ -54,10 +54,10 @@ class LoadUsers extends AbstractFixture implements OrderedFixtureInterface, Cont 'groupCenterRefs' => ['centerB_permission_group_direction'] ), 'multi_center' => array( - 'groupCenterRefs' => ['centerA_permission_group_social', + 'groupCenterRefs' => ['centerA_permission_group_social', 'centerB_permission_group_social'] ) - + ); public function load(ObjectManager $manager) @@ -67,11 +67,11 @@ class LoadUsers extends AbstractFixture implements OrderedFixtureInterface, Cont $user = new User(); $defaultEncoder = new MessageDigestPasswordEncoder('sha512', true, 5000); - + $encoderFactory = new EncoderFactory([ User::class => $defaultEncoder ]); - + $user ->setUsername($username) ->setPassword($encoderFactory @@ -84,7 +84,7 @@ class LoadUsers extends AbstractFixture implements OrderedFixtureInterface, Cont foreach ($params['groupCenterRefs'] as $groupCenterRef) { $user->addGroupCenter($this->getReference($groupCenterRef)); } - + echo 'Creating user ' . $username ."... \n"; $manager->persist($user); $this->addReference($username, $user); @@ -98,7 +98,7 @@ class LoadUsers extends AbstractFixture implements OrderedFixtureInterface, Cont if (NULL === $container) { throw new \LogicException('$container should not be null'); } - + $this->container = $container; }