mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-12 13:24:25 +00:00
Adding activity fixtures
This commit is contained in:
parent
f7ab4824db
commit
e1eeb1bdab
@ -25,20 +25,111 @@ namespace Chill\ActivityBundle\DataFixtures\ORM;
|
|||||||
use Doctrine\Common\DataFixtures\AbstractFixture;
|
use Doctrine\Common\DataFixtures\AbstractFixture;
|
||||||
use Doctrine\Common\DataFixtures\OrderedFixtureInterface;
|
use Doctrine\Common\DataFixtures\OrderedFixtureInterface;
|
||||||
use Doctrine\Common\Persistence\ObjectManager;
|
use Doctrine\Common\Persistence\ObjectManager;
|
||||||
|
use Faker\Factory as FakerFactory;
|
||||||
|
use Chill\ActivityBundle\Entity\Activity;
|
||||||
|
use Chill\MainBundle\DataFixtures\ORM\LoadUsers;
|
||||||
|
use Chill\ActivityBundle\DataFixtures\ORM\LoadActivityReason;
|
||||||
|
use Chill\ActivityBundle\DataFixtures\ORM\LoadActivityType;
|
||||||
|
use Chill\MainBundle\DataFixtures\ORM\LoadScopes;
|
||||||
|
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Description of LoadActivity
|
* Load reports into DB
|
||||||
*
|
*
|
||||||
* @author Champs-Libres Coop
|
* @author Champs-Libres Coop
|
||||||
*/
|
*/
|
||||||
class LoadActivity extends AbstractFixture implements OrderedFixtureInterface//, ContainerAwareInterface
|
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()
|
public function getOrder()
|
||||||
{
|
{
|
||||||
return 16400;
|
return 16400;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return a random scope
|
||||||
|
*
|
||||||
|
* @return \Chill\MainBundle\Entity\Scope
|
||||||
|
*/
|
||||||
|
private function getRandomScope()
|
||||||
|
{
|
||||||
|
$scopeRef = LoadScopes::$references[array_rand(LoadScopes::$references)];
|
||||||
|
return $this->getReference($scopeRef);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return a random activityType
|
||||||
|
*
|
||||||
|
* @return \Chill\ActivityBundle\Entity\ActivityType
|
||||||
|
*/
|
||||||
|
private function getRandomActivityType()
|
||||||
|
{
|
||||||
|
$typeRef = LoadActivityType::$references[array_rand(LoadActivityType::$references)];
|
||||||
|
return $this->getReference($typeRef);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return a random activityReason
|
||||||
|
*
|
||||||
|
* @return \Chill\ActivityBundle\Entity\ActivityReason
|
||||||
|
*/
|
||||||
|
private function getRandomActivityReason()
|
||||||
|
{
|
||||||
|
$reasonRef = LoadActivityReason::$references[array_rand(LoadActivityReason::$references)];
|
||||||
|
return $this->getReference($reasonRef);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return a random user
|
||||||
|
*
|
||||||
|
* @return \Chill\MainBundle\Entity\User
|
||||||
|
*/
|
||||||
|
private function getRandomUser()
|
||||||
|
{
|
||||||
|
$userRef = array_rand(LoadUsers::$refs);
|
||||||
|
return $this->getReference($userRef);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function newRandomActivity($person)
|
||||||
|
{
|
||||||
|
$activity = (new Activity())
|
||||||
|
->setUser($this->getRandomUser())
|
||||||
|
->setPerson($person)
|
||||||
|
->setDate($this->faker->dateTimeThisYear())
|
||||||
|
->setDurationTime($this->faker->dateTime(36000))
|
||||||
|
->setType($this->getRandomActivityType())
|
||||||
|
->setReason($this->getRandomActivityReason())
|
||||||
|
->setScope($this->getRandomScope())
|
||||||
|
->setAttendee($this->faker->boolean())
|
||||||
|
->setRemark('A remark');
|
||||||
|
return $activity;
|
||||||
|
}
|
||||||
|
|
||||||
public function load(ObjectManager $manager)
|
public function load(ObjectManager $manager)
|
||||||
{
|
{
|
||||||
|
$persons = $this->container->get('doctrine.orm.entity_manager')
|
||||||
|
->getRepository('ChillPersonBundle:Person')
|
||||||
|
->findAll();
|
||||||
|
|
||||||
|
foreach($persons as $person) {
|
||||||
|
$activityNbr = rand(0,3);
|
||||||
|
for($i = 0; $i < $activityNbr; $i ++) {
|
||||||
|
print "Creating an activity type for : ".$person."\n";
|
||||||
|
$activity = $this->newRandomActivity($person);
|
||||||
|
$manager->persist($activity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$manager->flush();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -39,6 +39,8 @@ class LoadActivityReason extends AbstractFixture implements OrderedFixtureInterf
|
|||||||
return 16300;
|
return 16300;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static $references = array();
|
||||||
|
|
||||||
public function load(ObjectManager $manager)
|
public function load(ObjectManager $manager)
|
||||||
{
|
{
|
||||||
$reasons = [
|
$reasons = [
|
||||||
@ -69,6 +71,9 @@ class LoadActivityReason extends AbstractFixture implements OrderedFixtureInterf
|
|||||||
->setActive(true)
|
->setActive(true)
|
||||||
->setCategory($this->getReference($r['category']));
|
->setCategory($this->getReference($r['category']));
|
||||||
$manager->persist($activityReason);
|
$manager->persist($activityReason);
|
||||||
|
$reference = 'activity_reason_'.$r['name']['en'];
|
||||||
|
$this->addReference($reference, $activityReason);
|
||||||
|
static::$references[] = $reference;
|
||||||
}
|
}
|
||||||
|
|
||||||
$manager->flush();
|
$manager->flush();
|
||||||
|
@ -38,6 +38,8 @@ class LoadActivityType extends AbstractFixture implements OrderedFixtureInterfac
|
|||||||
{
|
{
|
||||||
return 16100;
|
return 16100;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static $references = array();
|
||||||
|
|
||||||
public function load(ObjectManager $manager)
|
public function load(ObjectManager $manager)
|
||||||
{
|
{
|
||||||
@ -55,6 +57,9 @@ class LoadActivityType extends AbstractFixture implements OrderedFixtureInterfac
|
|||||||
$activityType = (new ActivityType())
|
$activityType = (new ActivityType())
|
||||||
->setName(($t['name']));
|
->setName(($t['name']));
|
||||||
$manager->persist($activityType);
|
$manager->persist($activityType);
|
||||||
|
$reference = 'activity_type_'.$t['name']['en'];
|
||||||
|
$this->addReference($reference, $activityType);
|
||||||
|
static::$references[] = $reference;
|
||||||
}
|
}
|
||||||
|
|
||||||
$manager->flush();
|
$manager->flush();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user