Loading src/UnicaenIndicateur/Controller/IndicateurController.php +7 −6 Original line number Diff line number Diff line Loading @@ -71,8 +71,9 @@ class IndicateurController extends AbstractActionController { $perimetres = $this->getPerimetreService()->getPerimetres($user, $role); $exists = $this->getIndicateurService()->verifierExistanceMaterializedView($indicateur->getViewId()); if ($exists === true) $result = $this->getIndicateurService()->getIndicateurData($indicateur, $perimetres); $exists = $this->getIndicateurService()->verifierExistanceMaterializedView($indicateur); // if ($exists === true) $result = $this->getIndicateurService()->getIndicateurData($indicateur, $perimetres); $result = $this->getIndicateurService()->getIndicateurData($indicateur, $perimetres); return new ViewModel([ 'indicateur' => $indicateur, Loading Loading @@ -114,7 +115,7 @@ class IndicateurController extends AbstractActionController { $indicateur->setDernierRafraichissement(new DateTime()); $this->getIndicateurService()->create($indicateur); $this->getIndicateurService()->createView($indicateur); if (!$indicateur->isSelectOnly()) $this->getIndicateurService()->createView($indicateur); $count = $this->getIndicateurService()->getCount($indicateur); $indicateur->setNbElements($count); $this->getIndicateurService()->update($indicateur); Loading Loading @@ -152,7 +153,7 @@ class IndicateurController extends AbstractActionController { $form->setData($data); if ($form->isValid()) { $this->getIndicateurService()->update($indicateur); $this->getIndicateurService()->updateView($indicateur); if (!$indicateur->isSelectOnly()) $this->getIndicateurService()->updateView($indicateur); return $this->redirect()->toRoute('indicateur/afficher', ['indicateur' => $indicateur->getId()], [], true); } } Loading @@ -175,7 +176,7 @@ class IndicateurController extends AbstractActionController { if ($request->isPost()) { $data = $request->getPost(); if ($data["reponse"] === "oui") { $this->getIndicateurService()->dropView($indicateur); if (!$indicateur->isSelectOnly()) $this->getIndicateurService()->dropView($indicateur); $this->getIndicateurService()->delete($indicateur); } exit(); Loading @@ -197,7 +198,7 @@ class IndicateurController extends AbstractActionController { { $indicateur = $this->getIndicateurService()->getRequestedIndicateur($this); $indicateur->setDernierRafraichissement(new DateTime()); $this->getIndicateurService()->createView($indicateur); if (!$indicateur->isSelectOnly()) $this->getIndicateurService()->createView($indicateur); $this->getIndicateurService()->update($indicateur); $retour = $this->params()->fromQuery('retour'); Loading src/UnicaenIndicateur/Entity/Db/Indicateur.php +23 −2 Original line number Diff line number Diff line Loading @@ -22,6 +22,9 @@ class Indicateur { private ?string $description = null; private ?Categorie $categorie = null; private ?string $orm = null; private ?bool $selectOnly = null; private ?string $requete = null; private ?DateTime $dernierRafraichissement = null; private ?string $viewId = null; Loading Loading @@ -87,8 +90,6 @@ class Indicateur { $this->categorie = $categorie; } public function getRequete() : ?string { return $this->requete; Loading Loading @@ -178,6 +179,26 @@ class Indicateur { return in_array($role->getRoleId(), $listing); } public function getOrm(): ?string { return $this->orm; } public function setOrm(string $orm) { $this->orm = $orm; } public function isSelectOnly(): bool { return ($this->selectOnly === true); } public function setSelectOnly(?bool $selectOnly): void { $this->selectOnly = $selectOnly; } /** Abonnements **************************************************************** */ /** Loading src/UnicaenIndicateur/Entity/Db/Mapping/UnicaenIndicateur.Entity.Db.Indicateur.dcm.xml +22 −17 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ <field name="dernierRafraichissement" type="datetime" column="dernier_rafraichissement" nullable="true"/> <field name="viewId" length="255" column="view_id" nullable="true"/> <field name="entity" length="255" column="entity" nullable="true"/> <field name="namespace" length="1024" column="namespace" nullable="true"/> <field name="perimetre" length="256" column="perimetre"/> <field name="rolesAutorises" length="2048" column="roles_autorises"/> Loading @@ -26,6 +27,10 @@ <join-column name="categorie_id"/> </many-to-one> <field name="orm" length="255" column="orm"/> <field name="selectOnly" type="boolean" column="select_only"/> <one-to-many target-entity="UnicaenIndicateur\Entity\Db\Abonnement" field="abonnements" mapped-by="indicateur"/> <many-to-many field="tableaux" target-entity="UnicaenIndicateur\Entity\Db\TableauDeBord" inversed-by="tableau"> Loading src/UnicaenIndicateur/Form/Indicateur/IndicateurForm.php +12 −5 Original line number Diff line number Diff line Loading @@ -82,16 +82,22 @@ class IndicateurForm extends Form { // categorie $this->add([ 'type' => Select::class, 'name' => 'categorie', 'name' => 'orm', 'options' => [ 'label' => "Catégorie :", 'empty_option' => "Sélectionner une entité ...", 'value_options' => $this->getCategorieService()->getCategoriesAsOptions(), 'label' => "Base de donnée sources :", 'empty_option' => "Sélectionner une base de donnée ...", //TODO faire pour de vrai 'value_options' => [ 'Indicateur' => 'orm_default', 'Inscription SUAC' => 'orm_suac', 'Mes Formations' => 'orm_mesformations', ], ], 'attributes' => [ 'id' => 'categorie', 'id' => 'orm', ], ]); // // namespace // $this->add([ // 'type' => Text::class, Loading Loading @@ -224,6 +230,7 @@ class IndicateurForm extends Form { 'categorie' => [ 'required' => false, ], // 'namespace' => [ 'required' => false, ], 'view_id' => [ 'required' => true, ], 'orm' => [ 'required' => true, ], // 'entity' => [ 'required' => true, ], 'perimetre' => [ 'required' => false, ], 'roles_autorises' => [ 'required' => true, ], Loading src/UnicaenIndicateur/Form/Indicateur/IndicateurHydrator.php +3 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ class IndicateurHydrator implements HydratorInterface { 'categorie' => $object->getCategorie()?->getId(), // 'namespace' => $object->getNamespace(), 'view_id' => $object->getViewId(), 'orm' => $object->getOrm(), // 'entity' => $object->getEntity(), 'perimetre' => ($object->getPerimetre())?explode(PerimetreServiceInterface::PERIMETRE_SEPARATOR, $object->getPerimetre()):null, 'roles_autorises' => $object->getRolesAutorises()??null, Loading @@ -33,6 +34,7 @@ class IndicateurHydrator implements HydratorInterface { $code = (isset($data['code']) AND trim($data['code']) !== '')?trim($data['code']):null; $categorie = (isset($data['categorie']) && $data['categorie'] !== '')?$this->getCategorieService()->getCategorie($data['categorie']):null; // $namespace = (isset($data['namespace']) AND trim($data['namespace']) !== '')?trim($data['namespace']):null; $orm = (isset($data['orm']) AND trim($data['orm']) !== '')?trim($data['orm']):null; $perimetres = isset($data['perimetre'])?implode(PerimetreServiceInterface::PERIMETRE_SEPARATOR, $data['perimetre']):null; //HERE I AM// $perimetreIds = (isset($data['perimetre']) AND ($data['perimetre']) !== '')?explode(PerimetreServiceInterface::PERIMETRE_SEPARATOR, $data['perimetre']):null; Loading @@ -43,6 +45,7 @@ class IndicateurHydrator implements HydratorInterface { $object->setTitre($data['libelle']); $object->setDescription($data['description']); $object->setCategorie($categorie); $object->setOrm($orm); // $object->setNamespace($namespace); $object->setPerimetre($perimetres); $object->setRolesAutorises($rolesAutorises); Loading Loading
src/UnicaenIndicateur/Controller/IndicateurController.php +7 −6 Original line number Diff line number Diff line Loading @@ -71,8 +71,9 @@ class IndicateurController extends AbstractActionController { $perimetres = $this->getPerimetreService()->getPerimetres($user, $role); $exists = $this->getIndicateurService()->verifierExistanceMaterializedView($indicateur->getViewId()); if ($exists === true) $result = $this->getIndicateurService()->getIndicateurData($indicateur, $perimetres); $exists = $this->getIndicateurService()->verifierExistanceMaterializedView($indicateur); // if ($exists === true) $result = $this->getIndicateurService()->getIndicateurData($indicateur, $perimetres); $result = $this->getIndicateurService()->getIndicateurData($indicateur, $perimetres); return new ViewModel([ 'indicateur' => $indicateur, Loading Loading @@ -114,7 +115,7 @@ class IndicateurController extends AbstractActionController { $indicateur->setDernierRafraichissement(new DateTime()); $this->getIndicateurService()->create($indicateur); $this->getIndicateurService()->createView($indicateur); if (!$indicateur->isSelectOnly()) $this->getIndicateurService()->createView($indicateur); $count = $this->getIndicateurService()->getCount($indicateur); $indicateur->setNbElements($count); $this->getIndicateurService()->update($indicateur); Loading Loading @@ -152,7 +153,7 @@ class IndicateurController extends AbstractActionController { $form->setData($data); if ($form->isValid()) { $this->getIndicateurService()->update($indicateur); $this->getIndicateurService()->updateView($indicateur); if (!$indicateur->isSelectOnly()) $this->getIndicateurService()->updateView($indicateur); return $this->redirect()->toRoute('indicateur/afficher', ['indicateur' => $indicateur->getId()], [], true); } } Loading @@ -175,7 +176,7 @@ class IndicateurController extends AbstractActionController { if ($request->isPost()) { $data = $request->getPost(); if ($data["reponse"] === "oui") { $this->getIndicateurService()->dropView($indicateur); if (!$indicateur->isSelectOnly()) $this->getIndicateurService()->dropView($indicateur); $this->getIndicateurService()->delete($indicateur); } exit(); Loading @@ -197,7 +198,7 @@ class IndicateurController extends AbstractActionController { { $indicateur = $this->getIndicateurService()->getRequestedIndicateur($this); $indicateur->setDernierRafraichissement(new DateTime()); $this->getIndicateurService()->createView($indicateur); if (!$indicateur->isSelectOnly()) $this->getIndicateurService()->createView($indicateur); $this->getIndicateurService()->update($indicateur); $retour = $this->params()->fromQuery('retour'); Loading
src/UnicaenIndicateur/Entity/Db/Indicateur.php +23 −2 Original line number Diff line number Diff line Loading @@ -22,6 +22,9 @@ class Indicateur { private ?string $description = null; private ?Categorie $categorie = null; private ?string $orm = null; private ?bool $selectOnly = null; private ?string $requete = null; private ?DateTime $dernierRafraichissement = null; private ?string $viewId = null; Loading Loading @@ -87,8 +90,6 @@ class Indicateur { $this->categorie = $categorie; } public function getRequete() : ?string { return $this->requete; Loading Loading @@ -178,6 +179,26 @@ class Indicateur { return in_array($role->getRoleId(), $listing); } public function getOrm(): ?string { return $this->orm; } public function setOrm(string $orm) { $this->orm = $orm; } public function isSelectOnly(): bool { return ($this->selectOnly === true); } public function setSelectOnly(?bool $selectOnly): void { $this->selectOnly = $selectOnly; } /** Abonnements **************************************************************** */ /** Loading
src/UnicaenIndicateur/Entity/Db/Mapping/UnicaenIndicateur.Entity.Db.Indicateur.dcm.xml +22 −17 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ <field name="dernierRafraichissement" type="datetime" column="dernier_rafraichissement" nullable="true"/> <field name="viewId" length="255" column="view_id" nullable="true"/> <field name="entity" length="255" column="entity" nullable="true"/> <field name="namespace" length="1024" column="namespace" nullable="true"/> <field name="perimetre" length="256" column="perimetre"/> <field name="rolesAutorises" length="2048" column="roles_autorises"/> Loading @@ -26,6 +27,10 @@ <join-column name="categorie_id"/> </many-to-one> <field name="orm" length="255" column="orm"/> <field name="selectOnly" type="boolean" column="select_only"/> <one-to-many target-entity="UnicaenIndicateur\Entity\Db\Abonnement" field="abonnements" mapped-by="indicateur"/> <many-to-many field="tableaux" target-entity="UnicaenIndicateur\Entity\Db\TableauDeBord" inversed-by="tableau"> Loading
src/UnicaenIndicateur/Form/Indicateur/IndicateurForm.php +12 −5 Original line number Diff line number Diff line Loading @@ -82,16 +82,22 @@ class IndicateurForm extends Form { // categorie $this->add([ 'type' => Select::class, 'name' => 'categorie', 'name' => 'orm', 'options' => [ 'label' => "Catégorie :", 'empty_option' => "Sélectionner une entité ...", 'value_options' => $this->getCategorieService()->getCategoriesAsOptions(), 'label' => "Base de donnée sources :", 'empty_option' => "Sélectionner une base de donnée ...", //TODO faire pour de vrai 'value_options' => [ 'Indicateur' => 'orm_default', 'Inscription SUAC' => 'orm_suac', 'Mes Formations' => 'orm_mesformations', ], ], 'attributes' => [ 'id' => 'categorie', 'id' => 'orm', ], ]); // // namespace // $this->add([ // 'type' => Text::class, Loading Loading @@ -224,6 +230,7 @@ class IndicateurForm extends Form { 'categorie' => [ 'required' => false, ], // 'namespace' => [ 'required' => false, ], 'view_id' => [ 'required' => true, ], 'orm' => [ 'required' => true, ], // 'entity' => [ 'required' => true, ], 'perimetre' => [ 'required' => false, ], 'roles_autorises' => [ 'required' => true, ], Loading
src/UnicaenIndicateur/Form/Indicateur/IndicateurHydrator.php +3 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ class IndicateurHydrator implements HydratorInterface { 'categorie' => $object->getCategorie()?->getId(), // 'namespace' => $object->getNamespace(), 'view_id' => $object->getViewId(), 'orm' => $object->getOrm(), // 'entity' => $object->getEntity(), 'perimetre' => ($object->getPerimetre())?explode(PerimetreServiceInterface::PERIMETRE_SEPARATOR, $object->getPerimetre()):null, 'roles_autorises' => $object->getRolesAutorises()??null, Loading @@ -33,6 +34,7 @@ class IndicateurHydrator implements HydratorInterface { $code = (isset($data['code']) AND trim($data['code']) !== '')?trim($data['code']):null; $categorie = (isset($data['categorie']) && $data['categorie'] !== '')?$this->getCategorieService()->getCategorie($data['categorie']):null; // $namespace = (isset($data['namespace']) AND trim($data['namespace']) !== '')?trim($data['namespace']):null; $orm = (isset($data['orm']) AND trim($data['orm']) !== '')?trim($data['orm']):null; $perimetres = isset($data['perimetre'])?implode(PerimetreServiceInterface::PERIMETRE_SEPARATOR, $data['perimetre']):null; //HERE I AM// $perimetreIds = (isset($data['perimetre']) AND ($data['perimetre']) !== '')?explode(PerimetreServiceInterface::PERIMETRE_SEPARATOR, $data['perimetre']):null; Loading @@ -43,6 +45,7 @@ class IndicateurHydrator implements HydratorInterface { $object->setTitre($data['libelle']); $object->setDescription($data['description']); $object->setCategorie($categorie); $object->setOrm($orm); // $object->setNamespace($namespace); $object->setPerimetre($perimetres); $object->setRolesAutorises($rolesAutorises); Loading