Loading module/Application/config/merged/formation.config.php +6 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,10 @@ namespace Application; use Application\Controller\FormationController; use Application\Controller\FormationControllerFactory; use Application\Form\AjouterFormation\AjouterFormationForm; use Application\Form\AjouterFormation\AjouterFormationFormFactory; use Application\Form\AjouterFormation\AjouterFormationHydrator; use Application\Form\AjouterFormation\AjouterFormationHydratorFactory; use Application\Form\Formation\FormationForm; use Application\Form\Formation\FormationFormFactory; use Application\Form\Formation\FormationHydrator; Loading Loading @@ -358,6 +362,7 @@ return [ ], 'form_elements' => [ 'factories' => [ AjouterFormationForm::class => AjouterFormationFormFactory::class, FormationForm::class => FormationFormFactory::class, FormationGroupeForm::class => FormationGroupeFormFactory::class, SelectionFormationForm::class => SelectionFormationFormFactory::class, Loading @@ -369,6 +374,7 @@ return [ // FormationGroupeHydrator::class => FormationGroupeHydrator::class, ], 'factories' => [ AjouterFormationHydrator::class => AjouterFormationHydratorFactory::class, FormationHydrator::class => FormationHydratorFactory::class, FormationGroupeHydrator::class => FormationGroupeHydratorFactory::class, ], Loading module/Application/config/merged/parcours-de-formation.config.php +64 −1 Original line number Diff line number Diff line Loading @@ -4,6 +4,10 @@ namespace Application; use Application\Controller\ParcoursDeFormationController; use Application\Controller\ParcoursDeFormationControllerFactory; use Application\Form\ModifierRattachement\ModifierRattachementForm; use Application\Form\ModifierRattachement\ModifierRattachementFormFactory; use Application\Form\ModifierRattachement\ModifierRattachementHydrator; use Application\Form\ModifierRattachement\ModifierRattachementHydratorFactory; use Application\Form\ParcoursDeFormation\ParcoursDeFormationForm; use Application\Form\ParcoursDeFormation\ParcoursDeFormationFormFactory; use Application\Form\ParcoursDeFormation\ParcoursDeFormationHydrator; Loading @@ -30,6 +34,12 @@ return [ 'historiser', 'restaurer', 'detruire', 'modifier-libelle', 'modifier-rattachement', 'ajouter-formation', 'retirer-formation', ], 'privileges' => [ FormationPrivileges::FORMATION_INDEX, Loading @@ -50,6 +60,13 @@ return [ 'route' => 'parcours-de-formation', 'resource' => FormationPrivileges::getResourceId(FormationPrivileges::FORMATION_AFFICHER), 'order' => 1150, 'pages' => [ 'modifier-parcours-de-foamtion' => [ 'label' => 'Parcours de formation', 'route' => 'parcours-de-formation/modifier', 'resource' => FormationPrivileges::getResourceId(FormationPrivileges::FORMATION_AFFICHER), ] ], ], ], ], Loading Loading @@ -85,7 +102,7 @@ return [ 'ajouter' => [ 'type' => Segment::class, 'options' => [ 'route' => '/ajouter/:type', 'route' => '/ajouter[/:type]', 'defaults' => [ 'controller' => ParcoursDeFormationController::class, 'action' => 'ajouter', Loading @@ -104,6 +121,50 @@ return [ ], 'may_terminate' => true, ], 'modifier-libelle' => [ 'type' => Segment::class, 'options' => [ 'route' => '/modifier-libelle/:parcours-de-formation', 'defaults' => [ 'controller' => ParcoursDeFormationController::class, 'action' => 'modifier-libelle', ], ], 'may_terminate' => true, ], 'modifier-rattachement' => [ 'type' => Segment::class, 'options' => [ 'route' => '/modifier-rattachement/:parcours-de-formation', 'defaults' => [ 'controller' => ParcoursDeFormationController::class, 'action' => 'modifier-rattachement', ], ], 'may_terminate' => true, ], 'ajouter-formation' => [ 'type' => Segment::class, 'options' => [ 'route' => '/ajouter-formation/:parcours-de-formation', 'defaults' => [ 'controller' => ParcoursDeFormationController::class, 'action' => 'ajouter-formation', ], ], 'may_terminate' => true, ], 'retirer-formation' => [ 'type' => Segment::class, 'options' => [ 'route' => '/retirer-formation/:parcours-de-formation/:formation', 'defaults' => [ 'controller' => ParcoursDeFormationController::class, 'action' => 'retirer-formation', ], ], 'may_terminate' => true, ], 'historiser' => [ 'type' => Segment::class, 'options' => [ Loading Loading @@ -154,11 +215,13 @@ return [ ], 'form_elements' => [ 'factories' => [ ModifierRattachementForm::class => ModifierRattachementFormFactory::class, ParcoursDeFormationForm::class => ParcoursDeFormationFormFactory::class, ], ], 'hydrators' => [ 'factories' => [ ModifierRattachementHydrator::class => ModifierRattachementHydratorFactory::class, ParcoursDeFormationHydrator::class => ParcoursDeFormationHydratorFactory::class, ], ], Loading module/Application/src/Application/Controller/ParcoursDeFormationController.php +131 −16 Original line number Diff line number Diff line Loading @@ -3,7 +3,11 @@ namespace Application\Controller; use Application\Entity\Db\ParcoursDeFormation; use Application\Form\AjouterFormation\AjouterFormationFormAwareTrait; use Application\Form\ModifierLibelle\ModifierLibelleFormAwareTrait; use Application\Form\ModifierRattachement\ModifierRattachementFormAwareTrait; use Application\Form\ParcoursDeFormation\ParcoursDeFormationFormAwareTrait; use Application\Service\Formation\FormationServiceAwareTrait; use Application\Service\ParcoursDeFormation\ParcoursDeFormationServiceAwareTrait; use Zend\Http\Request; use Zend\Mvc\Controller\AbstractActionController; Loading @@ -11,17 +15,23 @@ use Zend\View\Model\ViewModel; class ParcoursDeFormationController extends AbstractActionController { use FormationServiceAwareTrait; use ParcoursDeFormationServiceAwareTrait; use AjouterFormationFormAwareTrait; use ParcoursDeFormationFormAwareTrait; use ModifierLibelleFormAwareTrait; use ModifierRattachementFormAwareTrait; public function indexAction() { $parcoursCategorie = $this->getParcoursDeFormationService()->getParcoursDeFormationsByType(ParcoursDeFormation::TYPE_CATEGORIE); $parcoursMetier = $this->getParcoursDeFormationService()->getParcoursDeFormationsByType(ParcoursDeFormation::TYPE_METIER); $parcoursVide = $this->getParcoursDeFormationService()->getParcoursDeFormationsByType(null); return new ViewModel([ 'parcoursCategorie' => $parcoursCategorie, 'parcoursMetier' => $parcoursMetier, 'parcoursVide' => $parcoursVide, ]); } Loading @@ -39,39 +49,104 @@ class ParcoursDeFormationController extends AbstractActionController public function ajouterAction() { $type = $this->params()->fromRoute('type'); // $type = $this->params()->fromRoute('type'); // $parcours = new ParcoursDeFormation(); // $parcours->setType($type); // // $form = $this->getParcoursDeFormationForm(); // $form->setAttribute('action', $this->url()->fromRoute('parcours-de-formation/ajouter', ['type' => $type], [], true)); // $form->bind($parcours); // // /** @var Request $request */ // $request = $this->getRequest(); // if ($request->isPost()) { // $data = $request->getPost(); // $form->setData($data); // if ($form->isValid()) { // $this->getParcoursDeFormationService()->create($parcours); // } // } // // $vm = new ViewModel(); // $vm->setTemplate('application/parcours-de-formation/parcours-form'); // $vm->setVariables([ // 'title' => "Ajout d'un parcours de formation", // 'form' => $form, // ]); // return $vm; $parcours = new ParcoursDeFormation(); $parcours->setType($type); $this->getParcoursDeFormationService()->create($parcours); return $this->redirect()->toRoute('parcours-de-formation/modifier', ['parcours-de-formation' => $parcours->getId()], [], true); } public function modifierAction() { $parcours = $this->getParcoursDeFormationService()->getRequestedParcoursDeFormation($this); $reference = $this->getParcoursDeFormationService()->getReference($parcours); $form = $this->getParcoursDeFormationForm(); $form->setAttribute('action', $this->url()->fromRoute('parcours-de-formation/ajouter', ['type' => $type], [], true)); // $form = $this->getParcoursDeFormationForm(); // $form->setAttribute('action', $this->url()->fromRoute('parcours-de-formation/modifier', ['parcours-de-formation' => $parcours->getId()], [], true)); // $form->bind($parcours); // // /** @var Request $request */ // $request = $this->getRequest(); // if ($request->isPost()) { // $data = $request->getPost(); // $form->setData($data); // if ($form->isValid()) { // $this->getParcoursDeFormationService()->update($parcours); // } // } // // $vm = new ViewModel(); // $vm->setTemplate('application/parcours-de-formation/parcours-form'); // $vm->setVariables([ // 'title' => "Modification d'un parcours de formation", // 'form' => $form, // ]); // return $vm; return new ViewModel([ 'parcours' => $parcours, 'reference' => $reference, ]); } public function modifierLibelleAction() { $parcours = $this->getParcoursDeFormationService()->getRequestedParcoursDeFormation($this); $form = $this->getModifierLibelleForm(); $form->setAttribute('action', $this->url()->fromRoute('parcours-de-formation/modifier-libelle', ["parcours-de-formation" => $parcours->getId()], [], true)); $form->bind($parcours); /** @var Request $request */ $request = $this->getRequest(); if ($request->isPost()) { $data = $request->getPost(); $form->setData($data); if ($form->isValid()) { $this->getParcoursDeFormationService()->create($parcours); } $parcours->setLibelle($data['libelle']); $this->parcoursDeFormationService->update($parcours); } $vm = new ViewModel(); $vm->setTemplate('application/parcours-de-formation/parcours-form'); $vm->setTemplate('application/default/default-form'); $vm->setVariables([ 'title' => "Ajout d'un parcours de formation", 'title' => "Modifier le libellé du parcours de formation", 'form' => $form, ]); return $vm; } public function modifierAction() public function modifierRattachementAction() { $parcours = $this->getParcoursDeFormationService()->getRequestedParcoursDeFormation($this); $form = $this->getParcoursDeFormationForm(); $form->setAttribute('action', $this->url()->fromRoute('parcours-de-formation/modifier', ['parcours-de-formation' => $parcours->getId()], [], true)); $form = $this->getModifierRattachementForm(); $form->setAttribute('action', $this->url()->fromRoute('parcours-de-formation/modifier-rattachement', ["parcours-de-formation" => $parcours->getId()], [], true)); $form->bind($parcours); /** @var Request $request */ Loading @@ -80,19 +155,59 @@ class ParcoursDeFormationController extends AbstractActionController $data = $request->getPost(); $form->setData($data); if ($form->isValid()) { $this->getParcoursDeFormationService()->update($parcours); $this->parcoursDeFormationService->update($parcours); } } $vm = new ViewModel(); $vm->setTemplate('application/parcours-de-formation/parcours-form'); $vm->setTemplate('application/default/default-form'); $vm->setVariables([ 'title' => "Modification d'un parcours de formation", 'title' => "Modifier le rattachement du parcours de formation", 'form' => $form, ]); return $vm; } public function ajouterFormationAction() { $parcours = $this->getParcoursDeFormationService()->getRequestedParcoursDeFormation($this); $form = $this->getAjouterFormationForm(); $form->setAttribute('action', $this->url()->fromRoute('parcours-de-formation/ajouter-formation', ['parcours-de-formation' => $parcours->getId()], [], true)); $form->bind($parcours); $request = $this->getRequest(); if ($request->isPost()) { $data = $request->getPost(); if (isset($data['formation'])) { foreach ($data['formation'] as $id) { $formation = $this->getFormationService()->getFormation($id); $parcours->addFormation($formation); } $this->parcoursDeFormationService->update($parcours); } } $vm = new ViewModel(); $vm->setTemplate('application/default/default-form'); $vm->setVariables([ 'title' => 'Ajouter une ou plusieurs formations', 'form' => $form, ]); return $vm; } public function retirerFormationAction() { $parcours = $this->getParcoursDeFormationService()->getRequestedParcoursDeFormation($this); $formation = $this->getFormationService()->getRequestedFormation($this); $parcours->removeFormation($formation); $this->getParcoursDeFormationService()->update($parcours); return $this->redirect()->toRoute('parcours-de-formation/modifier', ['parcours-de-formation' => $parcours->getId()], [], true); } private function getFragment(ParcoursDeFormation $parcours) { $type = $parcours->getType(); Loading module/Application/src/Application/Controller/ParcoursDeFormationControllerFactory.php +16 −0 Original line number Diff line number Diff line Loading @@ -2,7 +2,11 @@ namespace Application\Controller; use Application\Form\AjouterFormation\AjouterFormationForm; use Application\Form\ModifierLibelle\ModifierLibelleForm; use Application\Form\ModifierRattachement\ModifierRattachementForm; use Application\Form\ParcoursDeFormation\ParcoursDeFormationForm; use Application\Service\Formation\FormationService; use Application\Service\ParcoursDeFormation\ParcoursDeFormationService; use Interop\Container\ContainerInterface; Loading @@ -15,19 +19,31 @@ class ParcoursDeFormationControllerFactory { public function __invoke(ContainerInterface $container) { /** * @var FormationService $formationService * @var ParcoursDeFormationService $parcoursService */ $formationService = $container->get(FormationService::class); $parcoursService = $container->get(ParcoursDeFormationService::class); /** * @var AjouterFormationForm $ajouterFormationForm * @var ParcoursDeFormationForm $parcoursForm * @var ModifierLibelleForm $modifierLibelleForm * @var ModifierRattachementForm $modifierRattachementForm */ $ajouterFormationForm = $container->get('FormElementManager')->get(AjouterFormationForm::class); $parcoursForm = $container->get('FormElementManager')->get(ParcoursDeFormationForm::class); $modifierLibelleForm = $container->get('FormElementManager')->get(ModifierLibelleForm::class); $modifierRattachementForm = $container->get('FormElementManager')->get(ModifierRattachementForm::class); /** @var ParcoursDeFormationController $controller */ $controller = new ParcoursDeFormationController(); $controller->setFormationService($formationService); $controller->setParcoursDeFormationService($parcoursService); $controller->setAjouterFormationForm($ajouterFormationForm); $controller->setParcoursDeFormationForm($parcoursForm); $controller->setModifierLibelleForm($modifierLibelleForm); $controller->setModifierRattachementForm($modifierRattachementForm); return $controller; } } No newline at end of file module/Application/src/Application/Form/AjouterFormation/AjouterFormationForm.php +58 −0 Original line number Diff line number Diff line <?php namespace Application\Form\AjouterFormation; use Application\Service\Formation\FormationServiceAwareTrait; use Zend\Form\Element\Button; use Zend\Form\Element\Select; use Zend\Form\Form; use Zend\InputFilter\Factory; class AjouterFormationForm extends Form { use FormationServiceAwareTrait; public function init() { /** SELECT :: FORMATION */ $this->add([ 'name' => 'formation', 'type' => Select::class, 'options' => [ 'label' => 'Formations : ', 'label_attributes' => [ 'class' => 'control-label', ], 'empty_option' => "Sélectionner une ou plusieurs formations ... ", 'value_options' => $this->getFormationService()->getFormationsGroupesAsGroupOptions(), ], 'attributes' => [ 'id' => 'formation', 'class' => 'bootstrap-selectpicker show-tick', 'data-live-search' => 'true', 'multiple' => 'multiple', ] ]); /** BUTTON :: SUBMIT */ $this->add([ 'type' => Button::class, 'name' => 'creer', 'options' => [ 'label' => '<i class="fas fa-save"></i> Ajouter', 'label_options' => [ 'disable_html_escape' => true, ], ], 'attributes' => [ 'type' => 'submit', 'class' => 'btn btn-primary', ], ]); $this->setInputFilter((new Factory())->createInputFilter([ 'formation' => [ 'required' => false, ], ])); } } No newline at end of file Loading
module/Application/config/merged/formation.config.php +6 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,10 @@ namespace Application; use Application\Controller\FormationController; use Application\Controller\FormationControllerFactory; use Application\Form\AjouterFormation\AjouterFormationForm; use Application\Form\AjouterFormation\AjouterFormationFormFactory; use Application\Form\AjouterFormation\AjouterFormationHydrator; use Application\Form\AjouterFormation\AjouterFormationHydratorFactory; use Application\Form\Formation\FormationForm; use Application\Form\Formation\FormationFormFactory; use Application\Form\Formation\FormationHydrator; Loading Loading @@ -358,6 +362,7 @@ return [ ], 'form_elements' => [ 'factories' => [ AjouterFormationForm::class => AjouterFormationFormFactory::class, FormationForm::class => FormationFormFactory::class, FormationGroupeForm::class => FormationGroupeFormFactory::class, SelectionFormationForm::class => SelectionFormationFormFactory::class, Loading @@ -369,6 +374,7 @@ return [ // FormationGroupeHydrator::class => FormationGroupeHydrator::class, ], 'factories' => [ AjouterFormationHydrator::class => AjouterFormationHydratorFactory::class, FormationHydrator::class => FormationHydratorFactory::class, FormationGroupeHydrator::class => FormationGroupeHydratorFactory::class, ], Loading
module/Application/config/merged/parcours-de-formation.config.php +64 −1 Original line number Diff line number Diff line Loading @@ -4,6 +4,10 @@ namespace Application; use Application\Controller\ParcoursDeFormationController; use Application\Controller\ParcoursDeFormationControllerFactory; use Application\Form\ModifierRattachement\ModifierRattachementForm; use Application\Form\ModifierRattachement\ModifierRattachementFormFactory; use Application\Form\ModifierRattachement\ModifierRattachementHydrator; use Application\Form\ModifierRattachement\ModifierRattachementHydratorFactory; use Application\Form\ParcoursDeFormation\ParcoursDeFormationForm; use Application\Form\ParcoursDeFormation\ParcoursDeFormationFormFactory; use Application\Form\ParcoursDeFormation\ParcoursDeFormationHydrator; Loading @@ -30,6 +34,12 @@ return [ 'historiser', 'restaurer', 'detruire', 'modifier-libelle', 'modifier-rattachement', 'ajouter-formation', 'retirer-formation', ], 'privileges' => [ FormationPrivileges::FORMATION_INDEX, Loading @@ -50,6 +60,13 @@ return [ 'route' => 'parcours-de-formation', 'resource' => FormationPrivileges::getResourceId(FormationPrivileges::FORMATION_AFFICHER), 'order' => 1150, 'pages' => [ 'modifier-parcours-de-foamtion' => [ 'label' => 'Parcours de formation', 'route' => 'parcours-de-formation/modifier', 'resource' => FormationPrivileges::getResourceId(FormationPrivileges::FORMATION_AFFICHER), ] ], ], ], ], Loading Loading @@ -85,7 +102,7 @@ return [ 'ajouter' => [ 'type' => Segment::class, 'options' => [ 'route' => '/ajouter/:type', 'route' => '/ajouter[/:type]', 'defaults' => [ 'controller' => ParcoursDeFormationController::class, 'action' => 'ajouter', Loading @@ -104,6 +121,50 @@ return [ ], 'may_terminate' => true, ], 'modifier-libelle' => [ 'type' => Segment::class, 'options' => [ 'route' => '/modifier-libelle/:parcours-de-formation', 'defaults' => [ 'controller' => ParcoursDeFormationController::class, 'action' => 'modifier-libelle', ], ], 'may_terminate' => true, ], 'modifier-rattachement' => [ 'type' => Segment::class, 'options' => [ 'route' => '/modifier-rattachement/:parcours-de-formation', 'defaults' => [ 'controller' => ParcoursDeFormationController::class, 'action' => 'modifier-rattachement', ], ], 'may_terminate' => true, ], 'ajouter-formation' => [ 'type' => Segment::class, 'options' => [ 'route' => '/ajouter-formation/:parcours-de-formation', 'defaults' => [ 'controller' => ParcoursDeFormationController::class, 'action' => 'ajouter-formation', ], ], 'may_terminate' => true, ], 'retirer-formation' => [ 'type' => Segment::class, 'options' => [ 'route' => '/retirer-formation/:parcours-de-formation/:formation', 'defaults' => [ 'controller' => ParcoursDeFormationController::class, 'action' => 'retirer-formation', ], ], 'may_terminate' => true, ], 'historiser' => [ 'type' => Segment::class, 'options' => [ Loading Loading @@ -154,11 +215,13 @@ return [ ], 'form_elements' => [ 'factories' => [ ModifierRattachementForm::class => ModifierRattachementFormFactory::class, ParcoursDeFormationForm::class => ParcoursDeFormationFormFactory::class, ], ], 'hydrators' => [ 'factories' => [ ModifierRattachementHydrator::class => ModifierRattachementHydratorFactory::class, ParcoursDeFormationHydrator::class => ParcoursDeFormationHydratorFactory::class, ], ], Loading
module/Application/src/Application/Controller/ParcoursDeFormationController.php +131 −16 Original line number Diff line number Diff line Loading @@ -3,7 +3,11 @@ namespace Application\Controller; use Application\Entity\Db\ParcoursDeFormation; use Application\Form\AjouterFormation\AjouterFormationFormAwareTrait; use Application\Form\ModifierLibelle\ModifierLibelleFormAwareTrait; use Application\Form\ModifierRattachement\ModifierRattachementFormAwareTrait; use Application\Form\ParcoursDeFormation\ParcoursDeFormationFormAwareTrait; use Application\Service\Formation\FormationServiceAwareTrait; use Application\Service\ParcoursDeFormation\ParcoursDeFormationServiceAwareTrait; use Zend\Http\Request; use Zend\Mvc\Controller\AbstractActionController; Loading @@ -11,17 +15,23 @@ use Zend\View\Model\ViewModel; class ParcoursDeFormationController extends AbstractActionController { use FormationServiceAwareTrait; use ParcoursDeFormationServiceAwareTrait; use AjouterFormationFormAwareTrait; use ParcoursDeFormationFormAwareTrait; use ModifierLibelleFormAwareTrait; use ModifierRattachementFormAwareTrait; public function indexAction() { $parcoursCategorie = $this->getParcoursDeFormationService()->getParcoursDeFormationsByType(ParcoursDeFormation::TYPE_CATEGORIE); $parcoursMetier = $this->getParcoursDeFormationService()->getParcoursDeFormationsByType(ParcoursDeFormation::TYPE_METIER); $parcoursVide = $this->getParcoursDeFormationService()->getParcoursDeFormationsByType(null); return new ViewModel([ 'parcoursCategorie' => $parcoursCategorie, 'parcoursMetier' => $parcoursMetier, 'parcoursVide' => $parcoursVide, ]); } Loading @@ -39,39 +49,104 @@ class ParcoursDeFormationController extends AbstractActionController public function ajouterAction() { $type = $this->params()->fromRoute('type'); // $type = $this->params()->fromRoute('type'); // $parcours = new ParcoursDeFormation(); // $parcours->setType($type); // // $form = $this->getParcoursDeFormationForm(); // $form->setAttribute('action', $this->url()->fromRoute('parcours-de-formation/ajouter', ['type' => $type], [], true)); // $form->bind($parcours); // // /** @var Request $request */ // $request = $this->getRequest(); // if ($request->isPost()) { // $data = $request->getPost(); // $form->setData($data); // if ($form->isValid()) { // $this->getParcoursDeFormationService()->create($parcours); // } // } // // $vm = new ViewModel(); // $vm->setTemplate('application/parcours-de-formation/parcours-form'); // $vm->setVariables([ // 'title' => "Ajout d'un parcours de formation", // 'form' => $form, // ]); // return $vm; $parcours = new ParcoursDeFormation(); $parcours->setType($type); $this->getParcoursDeFormationService()->create($parcours); return $this->redirect()->toRoute('parcours-de-formation/modifier', ['parcours-de-formation' => $parcours->getId()], [], true); } public function modifierAction() { $parcours = $this->getParcoursDeFormationService()->getRequestedParcoursDeFormation($this); $reference = $this->getParcoursDeFormationService()->getReference($parcours); $form = $this->getParcoursDeFormationForm(); $form->setAttribute('action', $this->url()->fromRoute('parcours-de-formation/ajouter', ['type' => $type], [], true)); // $form = $this->getParcoursDeFormationForm(); // $form->setAttribute('action', $this->url()->fromRoute('parcours-de-formation/modifier', ['parcours-de-formation' => $parcours->getId()], [], true)); // $form->bind($parcours); // // /** @var Request $request */ // $request = $this->getRequest(); // if ($request->isPost()) { // $data = $request->getPost(); // $form->setData($data); // if ($form->isValid()) { // $this->getParcoursDeFormationService()->update($parcours); // } // } // // $vm = new ViewModel(); // $vm->setTemplate('application/parcours-de-formation/parcours-form'); // $vm->setVariables([ // 'title' => "Modification d'un parcours de formation", // 'form' => $form, // ]); // return $vm; return new ViewModel([ 'parcours' => $parcours, 'reference' => $reference, ]); } public function modifierLibelleAction() { $parcours = $this->getParcoursDeFormationService()->getRequestedParcoursDeFormation($this); $form = $this->getModifierLibelleForm(); $form->setAttribute('action', $this->url()->fromRoute('parcours-de-formation/modifier-libelle', ["parcours-de-formation" => $parcours->getId()], [], true)); $form->bind($parcours); /** @var Request $request */ $request = $this->getRequest(); if ($request->isPost()) { $data = $request->getPost(); $form->setData($data); if ($form->isValid()) { $this->getParcoursDeFormationService()->create($parcours); } $parcours->setLibelle($data['libelle']); $this->parcoursDeFormationService->update($parcours); } $vm = new ViewModel(); $vm->setTemplate('application/parcours-de-formation/parcours-form'); $vm->setTemplate('application/default/default-form'); $vm->setVariables([ 'title' => "Ajout d'un parcours de formation", 'title' => "Modifier le libellé du parcours de formation", 'form' => $form, ]); return $vm; } public function modifierAction() public function modifierRattachementAction() { $parcours = $this->getParcoursDeFormationService()->getRequestedParcoursDeFormation($this); $form = $this->getParcoursDeFormationForm(); $form->setAttribute('action', $this->url()->fromRoute('parcours-de-formation/modifier', ['parcours-de-formation' => $parcours->getId()], [], true)); $form = $this->getModifierRattachementForm(); $form->setAttribute('action', $this->url()->fromRoute('parcours-de-formation/modifier-rattachement', ["parcours-de-formation" => $parcours->getId()], [], true)); $form->bind($parcours); /** @var Request $request */ Loading @@ -80,19 +155,59 @@ class ParcoursDeFormationController extends AbstractActionController $data = $request->getPost(); $form->setData($data); if ($form->isValid()) { $this->getParcoursDeFormationService()->update($parcours); $this->parcoursDeFormationService->update($parcours); } } $vm = new ViewModel(); $vm->setTemplate('application/parcours-de-formation/parcours-form'); $vm->setTemplate('application/default/default-form'); $vm->setVariables([ 'title' => "Modification d'un parcours de formation", 'title' => "Modifier le rattachement du parcours de formation", 'form' => $form, ]); return $vm; } public function ajouterFormationAction() { $parcours = $this->getParcoursDeFormationService()->getRequestedParcoursDeFormation($this); $form = $this->getAjouterFormationForm(); $form->setAttribute('action', $this->url()->fromRoute('parcours-de-formation/ajouter-formation', ['parcours-de-formation' => $parcours->getId()], [], true)); $form->bind($parcours); $request = $this->getRequest(); if ($request->isPost()) { $data = $request->getPost(); if (isset($data['formation'])) { foreach ($data['formation'] as $id) { $formation = $this->getFormationService()->getFormation($id); $parcours->addFormation($formation); } $this->parcoursDeFormationService->update($parcours); } } $vm = new ViewModel(); $vm->setTemplate('application/default/default-form'); $vm->setVariables([ 'title' => 'Ajouter une ou plusieurs formations', 'form' => $form, ]); return $vm; } public function retirerFormationAction() { $parcours = $this->getParcoursDeFormationService()->getRequestedParcoursDeFormation($this); $formation = $this->getFormationService()->getRequestedFormation($this); $parcours->removeFormation($formation); $this->getParcoursDeFormationService()->update($parcours); return $this->redirect()->toRoute('parcours-de-formation/modifier', ['parcours-de-formation' => $parcours->getId()], [], true); } private function getFragment(ParcoursDeFormation $parcours) { $type = $parcours->getType(); Loading
module/Application/src/Application/Controller/ParcoursDeFormationControllerFactory.php +16 −0 Original line number Diff line number Diff line Loading @@ -2,7 +2,11 @@ namespace Application\Controller; use Application\Form\AjouterFormation\AjouterFormationForm; use Application\Form\ModifierLibelle\ModifierLibelleForm; use Application\Form\ModifierRattachement\ModifierRattachementForm; use Application\Form\ParcoursDeFormation\ParcoursDeFormationForm; use Application\Service\Formation\FormationService; use Application\Service\ParcoursDeFormation\ParcoursDeFormationService; use Interop\Container\ContainerInterface; Loading @@ -15,19 +19,31 @@ class ParcoursDeFormationControllerFactory { public function __invoke(ContainerInterface $container) { /** * @var FormationService $formationService * @var ParcoursDeFormationService $parcoursService */ $formationService = $container->get(FormationService::class); $parcoursService = $container->get(ParcoursDeFormationService::class); /** * @var AjouterFormationForm $ajouterFormationForm * @var ParcoursDeFormationForm $parcoursForm * @var ModifierLibelleForm $modifierLibelleForm * @var ModifierRattachementForm $modifierRattachementForm */ $ajouterFormationForm = $container->get('FormElementManager')->get(AjouterFormationForm::class); $parcoursForm = $container->get('FormElementManager')->get(ParcoursDeFormationForm::class); $modifierLibelleForm = $container->get('FormElementManager')->get(ModifierLibelleForm::class); $modifierRattachementForm = $container->get('FormElementManager')->get(ModifierRattachementForm::class); /** @var ParcoursDeFormationController $controller */ $controller = new ParcoursDeFormationController(); $controller->setFormationService($formationService); $controller->setParcoursDeFormationService($parcoursService); $controller->setAjouterFormationForm($ajouterFormationForm); $controller->setParcoursDeFormationForm($parcoursForm); $controller->setModifierLibelleForm($modifierLibelleForm); $controller->setModifierRattachementForm($modifierRattachementForm); return $controller; } } No newline at end of file
module/Application/src/Application/Form/AjouterFormation/AjouterFormationForm.php +58 −0 Original line number Diff line number Diff line <?php namespace Application\Form\AjouterFormation; use Application\Service\Formation\FormationServiceAwareTrait; use Zend\Form\Element\Button; use Zend\Form\Element\Select; use Zend\Form\Form; use Zend\InputFilter\Factory; class AjouterFormationForm extends Form { use FormationServiceAwareTrait; public function init() { /** SELECT :: FORMATION */ $this->add([ 'name' => 'formation', 'type' => Select::class, 'options' => [ 'label' => 'Formations : ', 'label_attributes' => [ 'class' => 'control-label', ], 'empty_option' => "Sélectionner une ou plusieurs formations ... ", 'value_options' => $this->getFormationService()->getFormationsGroupesAsGroupOptions(), ], 'attributes' => [ 'id' => 'formation', 'class' => 'bootstrap-selectpicker show-tick', 'data-live-search' => 'true', 'multiple' => 'multiple', ] ]); /** BUTTON :: SUBMIT */ $this->add([ 'type' => Button::class, 'name' => 'creer', 'options' => [ 'label' => '<i class="fas fa-save"></i> Ajouter', 'label_options' => [ 'disable_html_escape' => true, ], ], 'attributes' => [ 'type' => 'submit', 'class' => 'btn btn-primary', ], ]); $this->setInputFilter((new Factory())->createInputFilter([ 'formation' => [ 'required' => false, ], ])); } } No newline at end of file