mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-13 05:44:24 +00:00
fix data provider
This commit is contained in:
parent
6fa0d229af
commit
6fe78b7177
@ -1,91 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace Chill\ActivityBundle\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\LoadAsideActivityCategory;
|
|
||||||
use Chill\AsideActivityBundle\Entity\AsideActivity;
|
|
||||||
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Load reports into DB
|
|
||||||
*
|
|
||||||
* @author Champs-Libres Coop
|
|
||||||
*/
|
|
||||||
class LoadActivity extends AbstractFixture implements OrderedFixtureInterface, ContainerAwareInterface
|
|
||||||
{
|
|
||||||
use \Symfony\Component\DependencyInjection\ContainerAwareTrait;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var \Faker\Generator
|
|
||||||
*/
|
|
||||||
private $faker;
|
|
||||||
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
$this->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();
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,53 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
Namespace Chill\AsideActivityBundle\DataFixtures;
|
|
||||||
|
|
||||||
use Doctrine\Bundle\FixturesBundle\Fixture;
|
|
||||||
use Doctrine\Common\DataFixtures\OrderedFixtureInterface;
|
|
||||||
use Doctrine\Persistence\ObjectManager;
|
|
||||||
use Chill\ActivityBundle\Entity\ActivityTypeCategory;
|
|
||||||
use Chill\AsideActivityBundle\Entity\AsideActivityCategory;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Fixtures for AsideActivityCategory
|
|
||||||
*
|
|
||||||
* @author Champs-Libres Coop
|
|
||||||
*/
|
|
||||||
class LoadAsideActivityCategory extends Fixture implements OrderedFixtureInterface
|
|
||||||
{
|
|
||||||
public static $references = array();
|
|
||||||
|
|
||||||
public function getOrder()
|
|
||||||
{
|
|
||||||
return 16050;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function load(ObjectManager $manager)
|
|
||||||
{
|
|
||||||
$categories = [
|
|
||||||
[
|
|
||||||
'title' => ['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();
|
|
||||||
}
|
|
||||||
}
|
|
@ -2,99 +2,50 @@
|
|||||||
|
|
||||||
namespace Chill\AsideActivityBundle\DataFixtures\ORM;
|
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\AsideActivity;
|
||||||
use Chill\AsideActivityBundle\Entity\AsideActivityCategory;
|
use Chill\MainBundle\DataFixtures\ORM\LoadUsers;
|
||||||
use Chill\MainBundle\Entity\User;
|
|
||||||
use Chill\MainBundle\Repository\UserRepository;
|
use Chill\MainBundle\Repository\UserRepository;
|
||||||
use DateTime;
|
use Doctrine\Bundle\FixturesBundle\Fixture;
|
||||||
use Doctrine\Bundle\FixturesBundle\FixtureGroupInterface;
|
|
||||||
use Doctrine\Common\DataFixtures\DependentFixtureInterface;
|
use Doctrine\Common\DataFixtures\DependentFixtureInterface;
|
||||||
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
|
use Doctrine\Persistence\ObjectManager;
|
||||||
|
|
||||||
/**
|
class LoadAsideActivity extends Fixture implements DependentFixtureInterface
|
||||||
* Load reports into DB
|
|
||||||
*
|
|
||||||
* @author Champs-Libres Coop
|
|
||||||
*/
|
|
||||||
class LoadAsideActivity extends AbstractFixture implements DependentFixtureInterface, ContainerAwareInterface
|
|
||||||
{
|
{
|
||||||
use \Symfony\Component\DependencyInjection\ContainerAwareTrait;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var \Faker\Generator
|
|
||||||
*/
|
|
||||||
private $faker;
|
|
||||||
|
|
||||||
private array $cacheUsers = [];
|
|
||||||
|
|
||||||
private UserRepository $userRepository;
|
private UserRepository $userRepository;
|
||||||
|
|
||||||
public function __construct(UserRepository $userRepository)
|
public function __construct(UserRepository $userRepository)
|
||||||
{
|
{
|
||||||
$this->faker = FakerFactory::create('fr_FR');
|
|
||||||
$this->userRepository = $userRepository;
|
$this->userRepository = $userRepository;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getDependencies()
|
public function getDependencies(): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
LoadAsideActivityCategory::class,
|
|
||||||
LoadUsers::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)
|
public function load(ObjectManager $manager)
|
||||||
{
|
{
|
||||||
for($i = 0; $i < 100; $i ++) {
|
$user = $this->userRepository->findOneBy(['username' => 'center a_social']);
|
||||||
$asideactivity = $this->newRandomActivity();
|
|
||||||
$manager->persist($asideactivity);
|
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();
|
$manager->flush();
|
||||||
|
@ -1,50 +1,24 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
Namespace Chill\AsideActivityBundle\DataFixtures\ORM;
|
namespace Chill\AsideActivityBundle\DataFixtures\ORM;
|
||||||
|
|
||||||
use Doctrine\Bundle\FixturesBundle\Fixture;
|
|
||||||
use Doctrine\Common\DataFixtures\OrderedFixtureInterface;
|
|
||||||
use Doctrine\Persistence\ObjectManager;
|
|
||||||
use Chill\ActivityBundle\Entity\ActivityTypeCategory;
|
|
||||||
use Chill\AsideActivityBundle\Entity\AsideActivityCategory;
|
use Chill\AsideActivityBundle\Entity\AsideActivityCategory;
|
||||||
use Doctrine\Bundle\FixturesBundle\FixtureGroupInterface;
|
use Doctrine\Persistence\ObjectManager;
|
||||||
use Doctrine\Common\DataFixtures\DependentFixtureInterface;
|
|
||||||
|
|
||||||
/**
|
class LoadAsideActivityCategory extends \Doctrine\Bundle\FixturesBundle\Fixture
|
||||||
* Fixtures for AsideActivityCategory
|
|
||||||
*
|
|
||||||
* @author Champs-Libres Coop
|
|
||||||
*/
|
|
||||||
class LoadAsideActivityCategory extends Fixture
|
|
||||||
{
|
{
|
||||||
public static $references = array();
|
|
||||||
|
|
||||||
public function load(ObjectManager $manager)
|
public function load(ObjectManager $manager)
|
||||||
{
|
{
|
||||||
$categories = [
|
foreach ([
|
||||||
[
|
'Appel téléphonique',
|
||||||
'title' => ['fr' => 'Formation', 'en' => 'Training'],
|
'Formation'
|
||||||
'ref' => 'training',
|
] as $key => $label) {
|
||||||
],
|
$category = new AsideActivityCategory();
|
||||||
[
|
$category->setTitle(['fr' => $label]);
|
||||||
'title' => ['fr' => 'Team building', 'en' => 'Team building'],
|
$manager->persist($category);
|
||||||
'ref' => 'teambuilding',
|
$this->setReference('aside_activity_category_'.$key, $category);
|
||||||
],
|
|
||||||
];
|
|
||||||
|
|
||||||
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();
|
$manager->flush();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,5 @@
|
|||||||
|
services:
|
||||||
|
Chill\AsideActivityBundle\DataFixtures\:
|
||||||
|
resource: './../DataFixtures'
|
||||||
|
autowire: true
|
||||||
|
autoconfigure: true
|
@ -15,7 +15,7 @@ use Symfony\Component\Security\Core\Encoder\MessageDigestPasswordEncoder;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Load fixtures users into database
|
* Load fixtures users into database
|
||||||
*
|
*
|
||||||
* create a user for each permission_group and center.
|
* create a user for each permission_group and center.
|
||||||
* username and password are identicals.
|
* username and password are identicals.
|
||||||
*
|
*
|
||||||
@ -28,12 +28,12 @@ class LoadUsers extends AbstractFixture implements OrderedFixtureInterface, Cont
|
|||||||
* @var ContainerInterface
|
* @var ContainerInterface
|
||||||
*/
|
*/
|
||||||
private $container;
|
private $container;
|
||||||
|
|
||||||
public function getOrder()
|
public function getOrder()
|
||||||
{
|
{
|
||||||
return 1000;
|
return 1000;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static $refs = array(
|
public static $refs = array(
|
||||||
'center a_social' => array(
|
'center a_social' => array(
|
||||||
'groupCenterRefs' => ['centerA_permission_group_social']
|
'groupCenterRefs' => ['centerA_permission_group_social']
|
||||||
@ -54,10 +54,10 @@ class LoadUsers extends AbstractFixture implements OrderedFixtureInterface, Cont
|
|||||||
'groupCenterRefs' => ['centerB_permission_group_direction']
|
'groupCenterRefs' => ['centerB_permission_group_direction']
|
||||||
),
|
),
|
||||||
'multi_center' => array(
|
'multi_center' => array(
|
||||||
'groupCenterRefs' => ['centerA_permission_group_social',
|
'groupCenterRefs' => ['centerA_permission_group_social',
|
||||||
'centerB_permission_group_social']
|
'centerB_permission_group_social']
|
||||||
)
|
)
|
||||||
|
|
||||||
);
|
);
|
||||||
|
|
||||||
public function load(ObjectManager $manager)
|
public function load(ObjectManager $manager)
|
||||||
@ -67,11 +67,11 @@ class LoadUsers extends AbstractFixture implements OrderedFixtureInterface, Cont
|
|||||||
$user = new User();
|
$user = new User();
|
||||||
|
|
||||||
$defaultEncoder = new MessageDigestPasswordEncoder('sha512', true, 5000);
|
$defaultEncoder = new MessageDigestPasswordEncoder('sha512', true, 5000);
|
||||||
|
|
||||||
$encoderFactory = new EncoderFactory([
|
$encoderFactory = new EncoderFactory([
|
||||||
User::class => $defaultEncoder
|
User::class => $defaultEncoder
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$user
|
$user
|
||||||
->setUsername($username)
|
->setUsername($username)
|
||||||
->setPassword($encoderFactory
|
->setPassword($encoderFactory
|
||||||
@ -84,7 +84,7 @@ class LoadUsers extends AbstractFixture implements OrderedFixtureInterface, Cont
|
|||||||
foreach ($params['groupCenterRefs'] as $groupCenterRef) {
|
foreach ($params['groupCenterRefs'] as $groupCenterRef) {
|
||||||
$user->addGroupCenter($this->getReference($groupCenterRef));
|
$user->addGroupCenter($this->getReference($groupCenterRef));
|
||||||
}
|
}
|
||||||
|
|
||||||
echo 'Creating user ' . $username ."... \n";
|
echo 'Creating user ' . $username ."... \n";
|
||||||
$manager->persist($user);
|
$manager->persist($user);
|
||||||
$this->addReference($username, $user);
|
$this->addReference($username, $user);
|
||||||
@ -98,7 +98,7 @@ class LoadUsers extends AbstractFixture implements OrderedFixtureInterface, Cont
|
|||||||
if (NULL === $container) {
|
if (NULL === $container) {
|
||||||
throw new \LogicException('$container should not be null');
|
throw new \LogicException('$container should not be null');
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->container = $container;
|
$this->container = $container;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user