Loading module/Indicateur/config/merged/indicateur.config.php +64 −10 Changes for module/Indicateur/config/merged/indicateur.config.php: 64 added lines, 10 removed lines. Original line number Diff line number Diff line Loading @@ -4,10 +4,13 @@ namespace Application; use Indicateur\Controller\Indicateur\IndicateurController; use Indicateur\Controller\Indicateur\IndicateurControllerFactory; use Indicateur\Form\Indicateur\IndicateurForm; use Indicateur\Form\Indicateur\IndicateurFormFactory; use Indicateur\Form\Indicateur\IndicateurHydrator; use Indicateur\Form\Indicateur\IndicateurHydratorFactory; use Indicateur\Provider\Privilege\IndicateurPrivileges; use Indicateur\Service\Indicateur\IndicateurService; use Indicateur\Service\Indicateur\IndicateurServiceFactory; use Indicateur\View\Helper\IndicateurStructureViewHelper; use UnicaenAuth\Guard\PrivilegeController; use Zend\Mvc\Router\Http\Literal; use Zend\Mvc\Router\Http\Segment; Loading @@ -22,6 +25,10 @@ return [ 'index', 'afficher', 'rafraichir', 'creer', 'modifier', 'detruire', 'exporter', ], 'privileges' => [ IndicateurPrivileges::AFFICHER, Loading @@ -45,16 +52,16 @@ return [ 'may_terminate' => true, ], 'indicateur' => [ 'type' => Segment::class, 'type' => Literal::class, 'options' => [ 'route' => '/indicateur/:indicateur', 'route' => '/indicateur', ], 'may_terminate' => false, 'child_routes' => [ 'afficher' => [ 'type' => Literal::class, 'type' => Segment::class, 'options' => [ 'route' => '/afficher', 'route' => '/afficher/:indicateur', 'defaults' => [ 'controller' => IndicateurController::class, 'action' => 'afficher', Loading @@ -63,9 +70,9 @@ return [ 'may_terminate' => true, ], 'rafraichir' => [ 'type' => Literal::class, 'type' => Segment::class, 'options' => [ 'route' => '/rafraichir', 'route' => '/rafraichir/:indicateur', 'defaults' => [ 'controller' => IndicateurController::class, 'action' => 'rafraichir', Loading @@ -73,6 +80,50 @@ return [ ], 'may_terminate' => true, ], 'creer' => [ 'type' => Literal::class, 'options' => [ 'route' => '/creer', 'defaults' => [ 'controller' => IndicateurController::class, 'action' => 'creer', ], ], 'may_terminate' => true, ], 'modifier' => [ 'type' => Segment::class, 'options' => [ 'route' => '/modifier/:indicateur', 'defaults' => [ 'controller' => IndicateurController::class, 'action' => 'modifier', ], ], 'may_terminate' => true, ], 'detruire' => [ 'type' => Segment::class, 'options' => [ 'route' => '/detruire/:indicateur', 'defaults' => [ 'controller' => IndicateurController::class, 'action' => 'detruire', ], ], 'may_terminate' => true, ], 'exporter' => [ 'type' => Segment::class, 'options' => [ 'route' => '/exporter/:indicateur', 'defaults' => [ 'controller' => IndicateurController::class, 'action' => 'exporter', ], ], 'may_terminate' => true, ], ] ], ], Loading @@ -89,14 +140,17 @@ return [ ], ], 'form_elements' => [ 'factories' => [], 'factories' => [ IndicateurForm::class => IndicateurFormFactory::class, ], ], 'hydrators' => [ 'factories' => [], 'factories' => [ IndicateurHydrator::class => IndicateurHydratorFactory::class, ], ], 'view_helpers' => [ 'invokables' => [ 'indicateurStructure' => IndicateurStructureViewHelper::class, ] ] Loading module/Indicateur/src/Indicateur/Controller/Indicateur/IndicateurController.php +98 −2 Changes for module/Indicateur/src/Indicateur/Controller/Indicateur/IndicateurController.php: 98 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -2,12 +2,18 @@ namespace Indicateur\Controller\Indicateur; use DateTime; use Indicateur\Entity\Db\Indicateur; use Indicateur\Form\Indicateur\IndicateurFormAwareTrait; use Indicateur\Service\Indicateur\IndicateurServiceAwareTrait; use UnicaenApp\View\Model\CsvModel; use Zend\Http\Request; use Zend\Mvc\Controller\AbstractActionController; use Zend\View\Model\ViewModel; class IndicateurController extends AbstractActionController { use IndicateurServiceAwareTrait; use IndicateurFormAwareTrait; public function indexAction() { Loading @@ -21,11 +27,12 @@ class IndicateurController extends AbstractActionController { public function afficherAction() { $indicateur = $this->getIndicateurService()->getRequestedIndicateur($this); $data = $this->getIndicateurService()->fetch($indicateur); $result = $this->getIndicateurService()->getIndicateurData($indicateur); return new ViewModel([ 'indicateur' => $indicateur, 'data' => $data, 'header' => $result[0], 'data' => $result[1], ]); } Loading @@ -35,4 +42,93 @@ class IndicateurController extends AbstractActionController { $this->getIndicateurService()->refresh($indicateur); return $this->redirect()->toRoute('indicateur/afficher', ['indicateur' => $indicateur->getId()], [], true); } public function creerAction() { $indicateur = new Indicateur(); $form = $this->getIndicateurForm(); $form->setAttribute('action', $this->url()->fromRoute('indicateur/creer', [], [], true)); $form->bind($indicateur); /** @var Request $request */ $request = $this->getRequest(); if ($request->isPost()) { $data = $request->getPost(); $form->setData($data); if ($form->isValid()) { $this->getIndicateurService()->create($indicateur); $this->getIndicateurService()->createView($indicateur); } } $vm = new ViewModel(); $vm->setTemplate('indicateur/default/default-form'); $vm->setVariables([ 'title' => 'Création d\'un nouvel indicateur', 'form' => $form, ]); return $vm; } public function modifierAction() { $indicateur = $this->getIndicateurService()->getRequestedIndicateur($this); $form = $this->getIndicateurForm(); $form->setAttribute('action', $this->url()->fromRoute('indicateur/modifier', [], [], true)); $form->bind($indicateur); /** @var Request $request */ $request = $this->getRequest(); if ($request->isPost()) { $data = $request->getPost(); $form->setData($data); if ($form->isValid()) { $this->getIndicateurService()->update($indicateur); $this->getIndicateurService()->updateView($indicateur); } } $vm = new ViewModel(); $vm->setTemplate('indicateur/default/default-form'); $vm->setVariables([ 'title' => 'Modification d\'un indicateur', 'form' => $form, ]); return $vm; } public function detruireAction() { $indicateur = $this->getIndicateurService()->getRequestedIndicateur($this); $this->getIndicateurService()->dropView($indicateur); $this->getIndicateurService()->delete($indicateur); return $this->redirect()->toRoute('indicateurs', [], [], true); } public function exporterAction() { $indicateur = $this->getIndicateurService()->getRequestedIndicateur($this); $date = new DateTime(); $filename = "preecog_".$indicateur->getViewId()."_".$date->format('Ymd-Hms').".csv"; $result = $this->getIndicateurService()->getIndicateurData($indicateur); $CSV = new CsvModel(); $CSV->setDelimiter(';'); $CSV->setEnclosure('"'); $CSV->setHeader($result[0]); $CSV->setData($result[1]); $CSV->setFilename($filename); return $CSV; } public function rafraichirTousAction() { $indicateurs = $this->getIndicateurService()->getIndicateurs(); foreach ($indicateurs as $indicateur) { $this->getIndicateurService()->refresh($indicateur); } exit(); } } No newline at end of file module/Indicateur/src/Indicateur/Controller/Indicateur/IndicateurControllerFactory.php +7 −0 Changes for module/Indicateur/src/Indicateur/Controller/Indicateur/IndicateurControllerFactory.php: 7 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ namespace Indicateur\Controller\Indicateur; use Indicateur\Form\Indicateur\IndicateurForm; use Indicateur\Service\Indicateur\IndicateurService; use Zend\Mvc\Controller\ControllerManager; Loading @@ -14,9 +15,15 @@ class IndicateurControllerFactory { */ $indicateurService = $manager->getServiceLocator()->get(IndicateurService::class); /** * @var IndicateurForm $indicateurForm */ $indicateurForm = $manager->getServiceLocator()->get('FormElementManager')->get(IndicateurForm::class); /** @var IndicateurController $controller */ $controller = new IndicateurController(); $controller->setIndicateurService($indicateurService); $controller->setIndicateurForm($indicateurForm); return $controller; } } No newline at end of file module/Indicateur/src/Indicateur/Entity/Db/Indicateur.php +1 −1 Changes for module/Indicateur/src/Indicateur/Entity/Db/Indicateur.php: 1 added line, 1 removed line. Original line number Diff line number Diff line Loading @@ -6,7 +6,7 @@ use DateTime; class Indicateur { public $ENTITY_STRUCTURE='Structure'; const ENTITY_STRUCTURE='Structure'; /** @var integer */ private $id; Loading module/Indicateur/src/Indicateur/Form/Indicateur/IndicateurForm.php 0 → 100644 +108 −0 Changes for module/Indicateur/src/Indicateur/Form/Indicateur/IndicateurForm.php: 108 added lines, 0 removed lines. Original line number Diff line number Diff line <?php namespace Indicateur\Form\Indicateur; use Indicateur\Entity\Db\Indicateur; use Zend\Form\Element\Button; use Zend\Form\Element\Select; use Zend\Form\Element\Text; use Zend\Form\Form; use Zend\InputFilter\Factory; class IndicateurForm extends Form { public function init() { // libelle $this->add([ 'type' => Text::class, 'name' => 'libelle', 'options' => [ 'label' => "Libelle* :", ], 'attributes' => [ 'id' => 'libelle', ], ]); // description $this->add([ 'name' => 'description', 'type' => 'textarea', 'options' => [ 'label' => 'Description : ', 'label_attributes' => [ 'class' => 'control-label', ], ], 'attributes' => [ 'class' => 'type2 form-control', ] ]); // view_id $this->add([ 'type' => Text::class, 'name' => 'view_id', 'options' => [ 'label' => "Identifiant de la vue* :", ], 'attributes' => [ 'id' => 'libelle', ], ]); // entity $this->add([ 'type' => Select::class, 'name' => 'entity', 'options' => [ 'label' => "Entity associé* :", 'empty_option' => "Sélectionner une entité ...", 'value_options' => [ Indicateur::ENTITY_STRUCTURE => 'Structure', ] ], 'attributes' => [ 'id' => 'formations', 'class' => 'bootstrap-selectpicker show-tick', ], ]); // requete $this->add([ 'name' => 'requete', 'type' => 'textarea', 'options' => [ 'label' => 'Requête* : ', 'label_attributes' => [ 'class' => 'control-label', ], ], 'attributes' => [ 'class' => 'form-control', 'style' => 'min-height:250px;', ] ]); // submit $this->add([ 'type' => Button::class, 'name' => 'creer', 'options' => [ 'label' => '<i class="fas fa-save"></i> Enregistrer', 'label_options' => [ 'disable_html_escape' => true, ], ], 'attributes' => [ 'type' => 'submit', 'class' => 'btn btn-primary', ], ]); $this->setInputFilter((new Factory())->createInputFilter([ 'libelle' => [ 'required' => true, ], 'description' => [ 'required' => false, ], 'view_id' => [ 'required' => true, ], 'entity' => [ 'required' => true, ], 'requete' => [ 'required' => true, ], ])); } } No newline at end of file Loading
module/Indicateur/config/merged/indicateur.config.php +64 −10 Changes for module/Indicateur/config/merged/indicateur.config.php: 64 added lines, 10 removed lines. Original line number Diff line number Diff line Loading @@ -4,10 +4,13 @@ namespace Application; use Indicateur\Controller\Indicateur\IndicateurController; use Indicateur\Controller\Indicateur\IndicateurControllerFactory; use Indicateur\Form\Indicateur\IndicateurForm; use Indicateur\Form\Indicateur\IndicateurFormFactory; use Indicateur\Form\Indicateur\IndicateurHydrator; use Indicateur\Form\Indicateur\IndicateurHydratorFactory; use Indicateur\Provider\Privilege\IndicateurPrivileges; use Indicateur\Service\Indicateur\IndicateurService; use Indicateur\Service\Indicateur\IndicateurServiceFactory; use Indicateur\View\Helper\IndicateurStructureViewHelper; use UnicaenAuth\Guard\PrivilegeController; use Zend\Mvc\Router\Http\Literal; use Zend\Mvc\Router\Http\Segment; Loading @@ -22,6 +25,10 @@ return [ 'index', 'afficher', 'rafraichir', 'creer', 'modifier', 'detruire', 'exporter', ], 'privileges' => [ IndicateurPrivileges::AFFICHER, Loading @@ -45,16 +52,16 @@ return [ 'may_terminate' => true, ], 'indicateur' => [ 'type' => Segment::class, 'type' => Literal::class, 'options' => [ 'route' => '/indicateur/:indicateur', 'route' => '/indicateur', ], 'may_terminate' => false, 'child_routes' => [ 'afficher' => [ 'type' => Literal::class, 'type' => Segment::class, 'options' => [ 'route' => '/afficher', 'route' => '/afficher/:indicateur', 'defaults' => [ 'controller' => IndicateurController::class, 'action' => 'afficher', Loading @@ -63,9 +70,9 @@ return [ 'may_terminate' => true, ], 'rafraichir' => [ 'type' => Literal::class, 'type' => Segment::class, 'options' => [ 'route' => '/rafraichir', 'route' => '/rafraichir/:indicateur', 'defaults' => [ 'controller' => IndicateurController::class, 'action' => 'rafraichir', Loading @@ -73,6 +80,50 @@ return [ ], 'may_terminate' => true, ], 'creer' => [ 'type' => Literal::class, 'options' => [ 'route' => '/creer', 'defaults' => [ 'controller' => IndicateurController::class, 'action' => 'creer', ], ], 'may_terminate' => true, ], 'modifier' => [ 'type' => Segment::class, 'options' => [ 'route' => '/modifier/:indicateur', 'defaults' => [ 'controller' => IndicateurController::class, 'action' => 'modifier', ], ], 'may_terminate' => true, ], 'detruire' => [ 'type' => Segment::class, 'options' => [ 'route' => '/detruire/:indicateur', 'defaults' => [ 'controller' => IndicateurController::class, 'action' => 'detruire', ], ], 'may_terminate' => true, ], 'exporter' => [ 'type' => Segment::class, 'options' => [ 'route' => '/exporter/:indicateur', 'defaults' => [ 'controller' => IndicateurController::class, 'action' => 'exporter', ], ], 'may_terminate' => true, ], ] ], ], Loading @@ -89,14 +140,17 @@ return [ ], ], 'form_elements' => [ 'factories' => [], 'factories' => [ IndicateurForm::class => IndicateurFormFactory::class, ], ], 'hydrators' => [ 'factories' => [], 'factories' => [ IndicateurHydrator::class => IndicateurHydratorFactory::class, ], ], 'view_helpers' => [ 'invokables' => [ 'indicateurStructure' => IndicateurStructureViewHelper::class, ] ] Loading
module/Indicateur/src/Indicateur/Controller/Indicateur/IndicateurController.php +98 −2 Changes for module/Indicateur/src/Indicateur/Controller/Indicateur/IndicateurController.php: 98 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -2,12 +2,18 @@ namespace Indicateur\Controller\Indicateur; use DateTime; use Indicateur\Entity\Db\Indicateur; use Indicateur\Form\Indicateur\IndicateurFormAwareTrait; use Indicateur\Service\Indicateur\IndicateurServiceAwareTrait; use UnicaenApp\View\Model\CsvModel; use Zend\Http\Request; use Zend\Mvc\Controller\AbstractActionController; use Zend\View\Model\ViewModel; class IndicateurController extends AbstractActionController { use IndicateurServiceAwareTrait; use IndicateurFormAwareTrait; public function indexAction() { Loading @@ -21,11 +27,12 @@ class IndicateurController extends AbstractActionController { public function afficherAction() { $indicateur = $this->getIndicateurService()->getRequestedIndicateur($this); $data = $this->getIndicateurService()->fetch($indicateur); $result = $this->getIndicateurService()->getIndicateurData($indicateur); return new ViewModel([ 'indicateur' => $indicateur, 'data' => $data, 'header' => $result[0], 'data' => $result[1], ]); } Loading @@ -35,4 +42,93 @@ class IndicateurController extends AbstractActionController { $this->getIndicateurService()->refresh($indicateur); return $this->redirect()->toRoute('indicateur/afficher', ['indicateur' => $indicateur->getId()], [], true); } public function creerAction() { $indicateur = new Indicateur(); $form = $this->getIndicateurForm(); $form->setAttribute('action', $this->url()->fromRoute('indicateur/creer', [], [], true)); $form->bind($indicateur); /** @var Request $request */ $request = $this->getRequest(); if ($request->isPost()) { $data = $request->getPost(); $form->setData($data); if ($form->isValid()) { $this->getIndicateurService()->create($indicateur); $this->getIndicateurService()->createView($indicateur); } } $vm = new ViewModel(); $vm->setTemplate('indicateur/default/default-form'); $vm->setVariables([ 'title' => 'Création d\'un nouvel indicateur', 'form' => $form, ]); return $vm; } public function modifierAction() { $indicateur = $this->getIndicateurService()->getRequestedIndicateur($this); $form = $this->getIndicateurForm(); $form->setAttribute('action', $this->url()->fromRoute('indicateur/modifier', [], [], true)); $form->bind($indicateur); /** @var Request $request */ $request = $this->getRequest(); if ($request->isPost()) { $data = $request->getPost(); $form->setData($data); if ($form->isValid()) { $this->getIndicateurService()->update($indicateur); $this->getIndicateurService()->updateView($indicateur); } } $vm = new ViewModel(); $vm->setTemplate('indicateur/default/default-form'); $vm->setVariables([ 'title' => 'Modification d\'un indicateur', 'form' => $form, ]); return $vm; } public function detruireAction() { $indicateur = $this->getIndicateurService()->getRequestedIndicateur($this); $this->getIndicateurService()->dropView($indicateur); $this->getIndicateurService()->delete($indicateur); return $this->redirect()->toRoute('indicateurs', [], [], true); } public function exporterAction() { $indicateur = $this->getIndicateurService()->getRequestedIndicateur($this); $date = new DateTime(); $filename = "preecog_".$indicateur->getViewId()."_".$date->format('Ymd-Hms').".csv"; $result = $this->getIndicateurService()->getIndicateurData($indicateur); $CSV = new CsvModel(); $CSV->setDelimiter(';'); $CSV->setEnclosure('"'); $CSV->setHeader($result[0]); $CSV->setData($result[1]); $CSV->setFilename($filename); return $CSV; } public function rafraichirTousAction() { $indicateurs = $this->getIndicateurService()->getIndicateurs(); foreach ($indicateurs as $indicateur) { $this->getIndicateurService()->refresh($indicateur); } exit(); } } No newline at end of file
module/Indicateur/src/Indicateur/Controller/Indicateur/IndicateurControllerFactory.php +7 −0 Changes for module/Indicateur/src/Indicateur/Controller/Indicateur/IndicateurControllerFactory.php: 7 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ namespace Indicateur\Controller\Indicateur; use Indicateur\Form\Indicateur\IndicateurForm; use Indicateur\Service\Indicateur\IndicateurService; use Zend\Mvc\Controller\ControllerManager; Loading @@ -14,9 +15,15 @@ class IndicateurControllerFactory { */ $indicateurService = $manager->getServiceLocator()->get(IndicateurService::class); /** * @var IndicateurForm $indicateurForm */ $indicateurForm = $manager->getServiceLocator()->get('FormElementManager')->get(IndicateurForm::class); /** @var IndicateurController $controller */ $controller = new IndicateurController(); $controller->setIndicateurService($indicateurService); $controller->setIndicateurForm($indicateurForm); return $controller; } } No newline at end of file
module/Indicateur/src/Indicateur/Entity/Db/Indicateur.php +1 −1 Changes for module/Indicateur/src/Indicateur/Entity/Db/Indicateur.php: 1 added line, 1 removed line. Original line number Diff line number Diff line Loading @@ -6,7 +6,7 @@ use DateTime; class Indicateur { public $ENTITY_STRUCTURE='Structure'; const ENTITY_STRUCTURE='Structure'; /** @var integer */ private $id; Loading
module/Indicateur/src/Indicateur/Form/Indicateur/IndicateurForm.php 0 → 100644 +108 −0 Changes for module/Indicateur/src/Indicateur/Form/Indicateur/IndicateurForm.php: 108 added lines, 0 removed lines. Original line number Diff line number Diff line <?php namespace Indicateur\Form\Indicateur; use Indicateur\Entity\Db\Indicateur; use Zend\Form\Element\Button; use Zend\Form\Element\Select; use Zend\Form\Element\Text; use Zend\Form\Form; use Zend\InputFilter\Factory; class IndicateurForm extends Form { public function init() { // libelle $this->add([ 'type' => Text::class, 'name' => 'libelle', 'options' => [ 'label' => "Libelle* :", ], 'attributes' => [ 'id' => 'libelle', ], ]); // description $this->add([ 'name' => 'description', 'type' => 'textarea', 'options' => [ 'label' => 'Description : ', 'label_attributes' => [ 'class' => 'control-label', ], ], 'attributes' => [ 'class' => 'type2 form-control', ] ]); // view_id $this->add([ 'type' => Text::class, 'name' => 'view_id', 'options' => [ 'label' => "Identifiant de la vue* :", ], 'attributes' => [ 'id' => 'libelle', ], ]); // entity $this->add([ 'type' => Select::class, 'name' => 'entity', 'options' => [ 'label' => "Entity associé* :", 'empty_option' => "Sélectionner une entité ...", 'value_options' => [ Indicateur::ENTITY_STRUCTURE => 'Structure', ] ], 'attributes' => [ 'id' => 'formations', 'class' => 'bootstrap-selectpicker show-tick', ], ]); // requete $this->add([ 'name' => 'requete', 'type' => 'textarea', 'options' => [ 'label' => 'Requête* : ', 'label_attributes' => [ 'class' => 'control-label', ], ], 'attributes' => [ 'class' => 'form-control', 'style' => 'min-height:250px;', ] ]); // submit $this->add([ 'type' => Button::class, 'name' => 'creer', 'options' => [ 'label' => '<i class="fas fa-save"></i> Enregistrer', 'label_options' => [ 'disable_html_escape' => true, ], ], 'attributes' => [ 'type' => 'submit', 'class' => 'btn btn-primary', ], ]); $this->setInputFilter((new Factory())->createInputFilter([ 'libelle' => [ 'required' => true, ], 'description' => [ 'required' => false, ], 'view_id' => [ 'required' => true, ], 'entity' => [ 'required' => true, ], 'requete' => [ 'required' => true, ], ])); } } No newline at end of file