Loading config/module.config.php +8 −0 Original line number Diff line number Diff line Loading @@ -3,6 +3,8 @@ use Doctrine\ORM\Mapping\Driver\XmlDriver; use Doctrine\Persistence\Mapping\Driver\MappingDriverChain; use UnicaenIndicateur\Provider\Privilege\IndicateurPrivileges; use UnicaenIndicateur\Service\HasIndicateurs\HasIndicateursService; use UnicaenIndicateur\Service\HasIndicateurs\HasIndicateursServiceFactory; use UnicaenPrivilege\Guard\PrivilegeController; return array( Loading Loading @@ -39,6 +41,12 @@ return array( ], ], 'service_manager' => [ 'factories' => [ HasIndicateursService::class => HasIndicateursServiceFactory::class ], ], 'form_elements' => [ 'factories' => [ ], Loading src/UnicaenIndicateur/Entity/Db/Indicateur.php +4 −2 Original line number Diff line number Diff line Loading @@ -15,6 +15,8 @@ class Indicateur { const ENTITY_LIBRE = 'Libre'; const ENTITY_ADAPTATIF = 'Adaptatif'; const TOUS_LES_ROLES = "Tous les rôles"; private ?int $id = null; private ?string $code = null; private ?string $titre = null; Loading @@ -31,9 +33,9 @@ class Indicateur { private ?int $nbElements = null; private ?string $perimetre = null; private ?string $rolesAutorises = null; private ?string $rolesAutorises = self::TOUS_LES_ROLES; const TOUS_LES_ROLES = "Tous les rôles"; public function __construct() { Loading src/UnicaenIndicateur/Entity/Trait/HasIndicateursTrait.php +1 −0 Original line number Diff line number Diff line Loading @@ -9,6 +9,7 @@ trait HasIndicateursTrait { private Collection $indicateurs; /** @return Indicateur[] */ public function getIndicateurs(): array { return $this->indicateurs->toArray(); Loading src/UnicaenIndicateur/Service/HasIndicateurs/HasIndicateursService.php 0 → 100644 +65 −0 Original line number Diff line number Diff line <?php namespace UnicaenIndicateur\Service\HasIndicateurs; use DoctrineModule\Persistence\ProvidesObjectManager; use UnicaenIndicateur\Entity\Db\Categorie; use UnicaenIndicateur\Entity\Db\Indicateur; use UnicaenIndicateur\Entity\Interface\HasIndicateursInterface; use UnicaenIndicateur\Service\Categorie\CategorieServiceAwareTrait; use UnicaenIndicateur\Service\Indicateur\IndicateurServiceAwareTrait; class HasIndicateursService { use ProvidesObjectManager; use CategorieServiceAwareTrait; use IndicateurServiceAwareTrait; public function ajouterIndicateurs(HasIndicateursInterface $object, array $listing, string $key = ":object"): string { $log = ""; foreach ($listing as $itemCategorie) { $categorieCode = $itemCategorie['code']; $categorie = $this->getCategorieService()->getCategorieByCode($categorieCode); if ($categorie === null) { $categorie = new Categorie(); $categorie->setCode($categorieCode); $categorie->setLibelle($itemCategorie['libelle']); $this->getCategorieService()->create($categorie); } foreach ($itemCategorie['indicateurs'] as $itemIndicateur) { $indicateur = new Indicateur(); $indicateur->setCode($categorie->getCode() . "__" . $itemIndicateur['code']); $indicateur->setTitre($itemIndicateur['libelle']); $indicateur->setCategorie($categorie); $indicateur->setViewId('mv_indicateur_' . strtolower($indicateur->getCode())); $requete = str_replace($key, $object->getId(), $itemIndicateur['requete']); $indicateur->setRequete($requete); $this->getIndicateurService()->create($indicateur); $this->getIndicateurService()->refresh($indicateur); $object->addIndicateur($indicateur); } } $this->getObjectManager()->flush($object); return $log; } public function retirerIndicateurs(HasIndicateursInterface $object): void { $indicateurs = $object->getIndicateurs(); $categories = []; foreach ($indicateurs as $indicateur) { $categories[$indicateur->getCategorie()->getId()] = $indicateur->getCategorie(); $this->getIndicateurService()->delete($indicateur, true); } foreach ($categories as $categorie) { if (empty($categorie->getIndicateurs()->toArray())) { $this->getCategorieService()->delete($categorie); } } } } src/UnicaenIndicateur/Service/HasIndicateurs/HasIndicateursServiceAwareTrait.php 0 → 100644 +20 −0 Original line number Diff line number Diff line <?php namespace UnicaenIndicateur\Service\HasIndicateurs; trait HasIndicateursServiceAwareTrait { private HasIndicateursService $hasIndicateursService; public function getHasIndicateursService(): HasIndicateursService { return $this->hasIndicateursService; } public function setHasIndicateursService(HasIndicateursService $hasIndicateursService): void { $this->hasIndicateursService = $hasIndicateursService; } } Loading
config/module.config.php +8 −0 Original line number Diff line number Diff line Loading @@ -3,6 +3,8 @@ use Doctrine\ORM\Mapping\Driver\XmlDriver; use Doctrine\Persistence\Mapping\Driver\MappingDriverChain; use UnicaenIndicateur\Provider\Privilege\IndicateurPrivileges; use UnicaenIndicateur\Service\HasIndicateurs\HasIndicateursService; use UnicaenIndicateur\Service\HasIndicateurs\HasIndicateursServiceFactory; use UnicaenPrivilege\Guard\PrivilegeController; return array( Loading Loading @@ -39,6 +41,12 @@ return array( ], ], 'service_manager' => [ 'factories' => [ HasIndicateursService::class => HasIndicateursServiceFactory::class ], ], 'form_elements' => [ 'factories' => [ ], Loading
src/UnicaenIndicateur/Entity/Db/Indicateur.php +4 −2 Original line number Diff line number Diff line Loading @@ -15,6 +15,8 @@ class Indicateur { const ENTITY_LIBRE = 'Libre'; const ENTITY_ADAPTATIF = 'Adaptatif'; const TOUS_LES_ROLES = "Tous les rôles"; private ?int $id = null; private ?string $code = null; private ?string $titre = null; Loading @@ -31,9 +33,9 @@ class Indicateur { private ?int $nbElements = null; private ?string $perimetre = null; private ?string $rolesAutorises = null; private ?string $rolesAutorises = self::TOUS_LES_ROLES; const TOUS_LES_ROLES = "Tous les rôles"; public function __construct() { Loading
src/UnicaenIndicateur/Entity/Trait/HasIndicateursTrait.php +1 −0 Original line number Diff line number Diff line Loading @@ -9,6 +9,7 @@ trait HasIndicateursTrait { private Collection $indicateurs; /** @return Indicateur[] */ public function getIndicateurs(): array { return $this->indicateurs->toArray(); Loading
src/UnicaenIndicateur/Service/HasIndicateurs/HasIndicateursService.php 0 → 100644 +65 −0 Original line number Diff line number Diff line <?php namespace UnicaenIndicateur\Service\HasIndicateurs; use DoctrineModule\Persistence\ProvidesObjectManager; use UnicaenIndicateur\Entity\Db\Categorie; use UnicaenIndicateur\Entity\Db\Indicateur; use UnicaenIndicateur\Entity\Interface\HasIndicateursInterface; use UnicaenIndicateur\Service\Categorie\CategorieServiceAwareTrait; use UnicaenIndicateur\Service\Indicateur\IndicateurServiceAwareTrait; class HasIndicateursService { use ProvidesObjectManager; use CategorieServiceAwareTrait; use IndicateurServiceAwareTrait; public function ajouterIndicateurs(HasIndicateursInterface $object, array $listing, string $key = ":object"): string { $log = ""; foreach ($listing as $itemCategorie) { $categorieCode = $itemCategorie['code']; $categorie = $this->getCategorieService()->getCategorieByCode($categorieCode); if ($categorie === null) { $categorie = new Categorie(); $categorie->setCode($categorieCode); $categorie->setLibelle($itemCategorie['libelle']); $this->getCategorieService()->create($categorie); } foreach ($itemCategorie['indicateurs'] as $itemIndicateur) { $indicateur = new Indicateur(); $indicateur->setCode($categorie->getCode() . "__" . $itemIndicateur['code']); $indicateur->setTitre($itemIndicateur['libelle']); $indicateur->setCategorie($categorie); $indicateur->setViewId('mv_indicateur_' . strtolower($indicateur->getCode())); $requete = str_replace($key, $object->getId(), $itemIndicateur['requete']); $indicateur->setRequete($requete); $this->getIndicateurService()->create($indicateur); $this->getIndicateurService()->refresh($indicateur); $object->addIndicateur($indicateur); } } $this->getObjectManager()->flush($object); return $log; } public function retirerIndicateurs(HasIndicateursInterface $object): void { $indicateurs = $object->getIndicateurs(); $categories = []; foreach ($indicateurs as $indicateur) { $categories[$indicateur->getCategorie()->getId()] = $indicateur->getCategorie(); $this->getIndicateurService()->delete($indicateur, true); } foreach ($categories as $categorie) { if (empty($categorie->getIndicateurs()->toArray())) { $this->getCategorieService()->delete($categorie); } } } }
src/UnicaenIndicateur/Service/HasIndicateurs/HasIndicateursServiceAwareTrait.php 0 → 100644 +20 −0 Original line number Diff line number Diff line <?php namespace UnicaenIndicateur\Service\HasIndicateurs; trait HasIndicateursServiceAwareTrait { private HasIndicateursService $hasIndicateursService; public function getHasIndicateursService(): HasIndicateursService { return $this->hasIndicateursService; } public function setHasIndicateursService(HasIndicateursService $hasIndicateursService): void { $this->hasIndicateursService = $hasIndicateursService; } }