public function load(ObjectManager $manager)
{
$salleA = $this->getReference('place-salle-a');
+ $salleB = $this->getReference('place-salle-b');
$manager->merge($salleA);
+ $manager->merge($salleB);
- $computerVideo = $this->createComputer('Poste vidéo-montage', $salleA);
- $computerAudio = $this->createComputer('Poste audio-montage', $salleA);
+ $computerVideo = $this->createComputer('Poste vidéo-montage', $salleA);
+ $computerBroken = $this->createComputer('Poste cassé', $salleA);
+ $computerBroken->deactivate();
- $this->setReference('computer-video', $computerVideo);
- $this->setReference('computer-audio', $computerAudio);
+ $computerAudio = $this->createComputer('Poste audio-montage', $salleB);
+
+ $this->setReference('computer-video', $computerVideo);
+ $this->setReference('computer-audio', $computerAudio);
+ $this->setReference('computer-broken', $computerBroken);
$manager->persist($computerVideo);
$manager->persist($computerAudio);
+ $manager->persist($computerBroken);
$manager->flush();
}
$espaceMultimedia = $this->createPlace('Espace Multimédia', $paris);
$salleA = $this->createPlace('Salle A', $espaceMultimedia);
+ $salleB = $this->createPlace('Salle B - fermée', $espaceMultimedia);
+ $salleB->deactivate();
$this->setReference('place-espace-multimedia', $espaceMultimedia);
$this->setReference('place-salle-a', $salleA);
+ $this->setReference('place-salle-b', $salleB);
$manager->persist($espaceMultimedia);
$manager->persist($salleA);
+ $manager->persist($salleB);
$manager->flush();
}
{
public function load(ObjectManager $manager)
{
- $france = $this->createZone('France');
- $idf = $this->createZone('IDF', $france);
- $paris = $this->createZone('Paris', $idf);
+ $bermudes = $this->createZone('Bermudes');
+ $bermudes->deactivate();
+ $france = $this->createZone('France');
+ $idf = $this->createZone('IDF', $france);
+ $paris = $this->createZone('Paris', $idf);
+
+ $this->setReference('zone-bermudes', $bermudes);
$this->setReference('zone-france', $france);
$this->setReference('zone-idf', $idf);
$this->setReference('zone-paris', $paris);
+ $manager->persist($bermudes);
$manager->persist($france);
$manager->persist($idf);
$manager->persist($paris);
$this->status = self::STATUS_ACTIVE;
}
- public function inactivate()
+ public function deactivate()
{
$this->status = self::STATUS_INACTIVE;
}
use Doctrine\ORM\EntityRepository;
+use Epnadmin\CoreBundle\Entity\Resource;
+
class ResourceRepository extends EntityRepository
{
public function createQueryForParent(Resource $resource)
+ {
+ $qb = $this->createQueryForTypes($resource->getAllowedParentTypes());
+
+ $this->qbOnlyVisible($qb);
+
+ return $qb;
+ }
+
+ protected function createQueryForTypes(array $types)
{
$types = array_map(function ($type) {
return 'Epnadmin\CoreBundle\Entity\Resource'.ucfirst($type);
- }, $resource->getAllowedParentTypes());
+ }, $types);
- return $this
+ $qb = $this
->createQueryBuilder('r')
->where('r INSTANCE OF ('.implode(', ', $types).')')
;
+
+ return $qb;
+ }
+
+ protected function qbOnlyVisible($qb)
+ {
+ $qb
+ ->andWhere('r.status = :status')
+ ->setParameter('status', Resource::STATUS_ACTIVE)
+ ;
}
}