Commit 52712581 authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

Déplacement des actions liées au domaine de MetierController vers DomaineController

parent 45356ab1
Loading
Loading
Loading
Loading
+180 −0
Changes for module/Application/config/merged/domaine.config.php: 180 added lines, 0 removed lines.
Original line number Diff line number Diff line
<?php

namespace Application;

use Application\Controller\DomaineController;
use Application\Controller\DomaineControllerFactory;
use Application\Controller\MetierController;
use Application\Controller\MetierControllerFactory;
use Application\Form\Domaine\DomaineForm;
use Application\Form\Domaine\DomaineFormFactory;
use Application\Form\Domaine\DomaineHydrator;
use Application\Form\Domaine\DomaineHydratorFactory;
use Application\Form\Metier\MetierForm;
use Application\Form\Metier\MetierFormFactory;
use Application\Form\Metier\MetierHydrator;
use Application\Form\Metier\MetierHydratorFactory;
use Application\Form\MetierReference\MetierReferenceForm;
use Application\Form\MetierReference\MetierReferenceFormFactory;
use Application\Form\MetierReference\MetierReferenceHydrator;
use Application\Form\MetierReference\MetierReferenceHydraytorFactory;
use Application\Form\MetierReferentiel\MetierReferentielForm;
use Application\Form\MetierReferentiel\MetierReferentielFormFactory;
use Application\Form\MetierReferentiel\MetierReferentielHydrator;
use Application\Form\MetierReferentiel\MetierReferentielHydratorFactory;
use Application\Provider\Privilege\MetierPrivileges;
use Application\Service\Domaine\DomaineService;
use Application\Service\Domaine\DomaineServiceFactory;
use Application\Service\FamilleProfessionnelle\FamilleProfessionnelleService;
use Application\Service\FamilleProfessionnelle\FamilleProfessionnelleServiceFactory;
use Application\Service\Metier\MetierService;
use Application\Service\Metier\MetierServiceFactory;
use Application\Service\MetierReference\MetierReferenceService;
use Application\Service\MetierReference\MetierReferenceServiceFactory;
use Application\Service\MetierReferentiel\MetierReferentielService;
use Application\Service\MetierReferentiel\MetierReferentielServiceFactory;
use Application\View\Helper\TypeFonctionViewHelper;
use UnicaenPrivilege\Guard\PrivilegeController;
use Zend\Router\Http\Literal;
use Zend\Router\Http\Segment;

return [
    'bjyauthorize' => [
        'guards' => [
            PrivilegeController::class => [
                [
                    'controller' => DomaineController::class,
                    'action' => [
                        'ajouter',
                    ],
                    'privileges' => [
                        MetierPrivileges::METIER_AJOUTER,
                    ],
                ],
                [
                    'controller' => DomaineController::class,
                    'action' => [
                        'modifier',
                    ],
                    'privileges' => [
                        MetierPrivileges::METIER_MODIFIER,
                    ],
                ],
                [
                    'controller' => DomaineController::class,
                    'action' => [
                        'historiser',
                        'restaurer',
                    ],
                    'privileges' => [
                        MetierPrivileges::METIER_HISTORISER,
                    ],
                ],
                [
                    'controller' => DomaineController::class,
                    'action' => [
                        'effacer',
                    ],
                    'privileges' => [
                        MetierPrivileges::METIER_DETRUIRE,
                    ],
                ],
            ],
        ],
    ],

    'router'          => [
        'routes' => [
            'domaine' => [
                'type'  => Literal::class,
                'options' => [
                    'route'    => '/domaine',
                    'defaults' => [
                        'controller' => DomaineController::class,
                    ],
                ],
                'may_terminate' => false,
                'child_routes' => [

                    /** DOMAINE ***************************************************************************************/

                    'ajouter' => [
                        'type'  => Literal::class,
                        'options' => [
                            'route'    => '/ajouter',
                            'defaults' => [
                                'controller' => DomaineController::class,
                                'action'     => 'ajouter',
                            ],
                        ],
                    ],
                    'modifier' => [
                        'type'  => Segment::class,
                        'options' => [
                            'route'    => '/modifier/:domaine',
                            'defaults' => [
                                'controller' => DomaineController::class,
                                'action'     => 'modifier',
                            ],
                        ],
                    ],
                    'historiser' => [
                        'type'  => Segment::class,
                        'options' => [
                            'route'    => '/historiser/:domaine',
                            'defaults' => [
                                'controller' => DomaineController::class,
                                'action'     => 'historiser',
                            ],
                        ],
                    ],
                    'restaurer' => [
                        'type'  => Segment::class,
                        'options' => [
                            'route'    => '/restaurer/:domaine',
                            'defaults' => [
                                'controller' => DomaineController::class,
                                'action'     => 'restaurer',
                            ],
                        ],
                    ],
                    'effacer' => [
                        'type'  => Segment::class,
                        'options' => [
                            'route'    => '/effacer/:domaine',
                            'defaults' => [
                                'controller' => DomaineController::class,
                                'action'     => 'effacer',
                            ],
                        ],
                    ],
                ],
            ],
        ],
    ],

    'service_manager' => [
        'factories' => [
            DomaineService::class => DomaineServiceFactory::class,
        ],
    ],
    'controllers'     => [
        'factories' => [
            DomaineController::class => DomaineControllerFactory::class,
        ],
    ],
    'form_elements' => [
        'factories' => [
            DomaineForm::class => DomaineFormFactory::class,
        ],
    ],
    'hydrators' => [
        'factories' => [
            DomaineHydrator::class => DomaineHydratorFactory::class,
        ],
    ],
    'view_helpers' => [
        'invokables' => [
        ],
    ],
];
+0 −61
Changes for module/Application/config/merged/metier.config.php: 0 added lines, 61 removed lines.
Original line number Diff line number Diff line
@@ -52,7 +52,6 @@ return [
                [
                    'controller' => MetierController::class,
                    'action' => [
                        'ajouter-domaine',
                        'ajouter-famille',
                        'ajouter-metier',
                        'ajouter-reference',
@@ -65,7 +64,6 @@ return [
                [
                    'controller' => MetierController::class,
                    'action' => [
                        'modifier-domaine',
                        'modifier-famille',
                        'modifier-metier',
                        'modifier-reference',
@@ -78,12 +76,10 @@ return [
                [
                    'controller' => MetierController::class,
                    'action' => [
                        'historiser-domaine',
                        'historiser-famille',
                        'historiser-metier',
                        'historiser-reference',
                        'historiser-referentiel',
                        'restaurer-domaine',
                        'restaurer-famille',
                        'restaurer-metier',
                        'restaurer-reference',
@@ -96,7 +92,6 @@ return [
                [
                    'controller' => MetierController::class,
                    'action' => [
                        'effacer-domaine',
                        'effacer-famille',
                        'effacer-metier',
                        'effacer-reference',
@@ -212,59 +207,6 @@ return [
                        ],
                    ],

                    /** DOMAINE ***************************************************************************************/

                    'ajouter-domaine' => [
                        'type'  => Literal::class,
                        'options' => [
                            'route'    => '/ajouter-domaine',
                            'defaults' => [
                                'controller' => MetierController::class,
                                'action'     => 'ajouter-domaine',
                            ],
                        ],
                    ],
                    'modifier-domaine' => [
                        'type'  => Segment::class,
                        'options' => [
                            'route'    => '/modifier-domaine/:domaine',
                            'defaults' => [
                                'controller' => MetierController::class,
                                'action'     => 'modifier-domaine',
                            ],
                        ],
                    ],
                    'historiser-domaine' => [
                        'type'  => Segment::class,
                        'options' => [
                            'route'    => '/historiser-domaine/:domaine',
                            'defaults' => [
                                'controller' => MetierController::class,
                                'action'     => 'historiser-domaine',
                            ],
                        ],
                    ],
                    'restaurer-domaine' => [
                        'type'  => Segment::class,
                        'options' => [
                            'route'    => '/restaurer-domaine/:domaine',
                            'defaults' => [
                                'controller' => MetierController::class,
                                'action'     => 'restaurer-domaine',
                            ],
                        ],
                    ],
                    'effacer-domaine' => [
                        'type'  => Segment::class,
                        'options' => [
                            'route'    => '/effacer-domaine/:domaine',
                            'defaults' => [
                                'controller' => MetierController::class,
                                'action'     => 'effacer-domaine',
                            ],
                        ],
                    ],

                    /** METIER ****************************************************************************************/

                    'ajouter-metier' => [
@@ -457,7 +399,6 @@ return [

    'service_manager' => [
        'factories' => [
            DomaineService::class => DomaineServiceFactory::class,
            FamilleProfessionnelleService::class => FamilleProfessionnelleServiceFactory::class,
            MetierReferenceService::class => MetierReferenceServiceFactory::class,
            MetierReferentielService::class => MetierReferentielServiceFactory::class,
@@ -471,7 +412,6 @@ return [
    ],
    'form_elements' => [
        'factories' => [
            DomaineForm::class => DomaineFormFactory::class,
            MetierForm::class => MetierFormFactory::class,
            MetierReferenceForm::class => MetierReferenceFormFactory::class,
            MetierReferentielForm::class => MetierReferentielFormFactory::class,
@@ -479,7 +419,6 @@ return [
    ],
    'hydrators' => [
        'factories' => [
            DomaineHydrator::class => DomaineHydratorFactory::class,
            MetierHydrator::class => MetierHydratorFactory::class,
            MetierReferenceHydrator::class => MetierReferenceHydraytorFactory::class,
            MetierReferentielHydrator::class => MetierReferentielHydratorFactory::class,
+116 −0
Changes for module/Application/src/Application/Controller/DomaineController.php: 116 added lines, 0 removed lines.
Original line number Diff line number Diff line
<?php

namespace Application\Controller;

use Application\Entity\Db\Domaine;
use Application\Form\Domaine\DomaineForm;
use Application\Form\Domaine\DomaineFormAwareTrait;
use Application\Service\Domaine\DomaineServiceAwareTrait;
use Zend\Http\Request;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;

class DomaineController extends AbstractActionController {
    use DomaineServiceAwareTrait;
    use DomaineFormAwareTrait;

    public function ajouterAction()
    {
        /** @var Domaine $domaine */
        $domaine = new Domaine();

        /** @var DomaineForm $form */
        $form = $this->getDomaineForm();
        $form->setAttribute('action', $this->url()->fromRoute('domaine/ajouter', [], [], true));
        $form->bind($domaine);

        /** @var Request $request */
        $request = $this->getRequest();
        if ($request->isPost()) {
            $data = $request->getPost();
            $form->setData($data);
            if ($form->isValid()) {
                $this->getDomaineService()->create($domaine);
            }
        }

        $vm = new ViewModel();
        $vm->setTemplate('application/default/default-form');
        $vm->setVariables([
            'title' => 'Ajouter un domaine',
            'form' => $form,
        ]);
        return $vm;
    }

    public function modifierAction()
    {
        $domaine = $this->getDomaineService()->getRequestedDomaine($this);

        /** @var DomaineForm $form */
        $form = $this->getDomaineForm();
        $form->setAttribute('action', $this->url()->fromRoute('domaine/modifier', ['domaine' => $domaine->getId()], [], true));
        $form->bind($domaine);

        /** @var Request $request */
        $request = $this->getRequest();
        if ($request->isPost()) {
            $data = $request->getPost();
            $form->setData($data);
            if ($form->isValid()) {
                $this->getDomaineService()->update($domaine);
            }
        }

        $vm = new ViewModel();
        $vm->setTemplate('application/default/default-form');
        $vm->setVariables([
            'title' => 'Modifier un domaine',
            'form' => $form,
        ]);
        return $vm;
    }

    public function historiserAction()
    {
        $domaine = $this->getDomaineService()->getRequestedDomaine($this);
        if ($domaine !== null) {
            $this->getDomaineService()->historise($domaine);
        }
        return $this->redirect()->toRoute('metier', [], ['fragment'=>'domaine'], true);
    }

    public function restaurerAction()
    {
        $domaine = $this->getDomaineService()->getRequestedDomaine($this);
        if ($domaine !== null) {
            $this->getDomaineService()->restore($domaine);
        }
        return $this->redirect()->toRoute('metier', [], ['fragment'=>'domaine'], true);
    }

    public function effacerAction()
    {
        $domaine = $this->getDomaineService()->getRequestedDomaine($this);

        /** @var Request $request */
        $request = $this->getRequest();
        if ($request->isPost()) {
            $data = $request->getPost();
            if ($data["reponse"] === "oui") $this->getDomaineService()->delete($domaine);
            //return $this->redirect()->toRoute('home');
            exit();
        }

        $vm = new ViewModel();
        if ($domaine !== null) {
            $vm->setTemplate('application/default/confirmation');
            $vm->setVariables([
                'title' => "Suppression du domaine " . $domaine->getLibelle(),
                'text' => "La suppression est définitive êtes-vous sûr&middot;e de vouloir continuer ?",
                'action' => $this->url()->fromRoute('domaine/effacer', ["domaine" => $domaine->getId()], [], true),
            ]);
        }
        return $vm;
    }
}
 No newline at end of file
+32 −0
Changes for module/Application/src/Application/Controller/DomaineControllerFactory.php: 32 added lines, 0 removed lines.
Original line number Diff line number Diff line
<?php

namespace Application\Controller;

use Application\Form\Domaine\DomaineForm;
use Application\Service\Domaine\DomaineService;
use Interop\Container\ContainerInterface;

class DomaineControllerFactory {

    /**
     * @param ContainerInterface $container
     * @return DomaineController
     */
    public function __invoke(ContainerInterface $container)
    {
        /**
         * @var DomaineService $domaineService
         */
        $domaineService = $container->get(DomaineService::class);

        /**
         * @var DomaineForm $domaineForm
         */
        $domaineForm = $container->get('FormElementManager')->get(DomaineForm::class);

        $controller = new DomaineController();
        $controller->setDomaineService($domaineService);
        $controller->setDomaineForm($domaineForm);
        return $controller;
    }
}
 No newline at end of file
+0 −108
Changes for module/Application/src/Application/Controller/MetierController.php: 0 added lines, 108 removed lines.
Original line number Diff line number Diff line
@@ -2,20 +2,16 @@

namespace Application\Controller;

use Application\Entity\Db\Domaine;
use Application\Entity\Db\FamilleProfessionnelle;
use Application\Entity\Db\Metier;
use Application\Entity\Db\MetierReference;
use Application\Entity\Db\MetierReferentiel;
use Application\Form\Domaine\DomaineForm;
use Application\Form\Domaine\DomaineFormAwareTrait;
use Application\Form\Metier\MetierForm;
use Application\Form\Metier\MetierFormAwareTrait;
use Application\Form\MetierReference\MetierReferenceFormAwareTrait;
use Application\Form\MetierReferentiel\MetierReferentielFormAwareTrait;
use Application\Form\ModifierLibelle\ModifierLibelleForm;
use Application\Form\ModifierLibelle\ModifierLibelleFormAwareTrait;
use Application\Service\Domaine\DomaineServiceAwareTrait;
use Application\Service\FamilleProfessionnelle\FamilleProfessionnelleServiceAwareTrait;
use Application\Service\Metier\MetierServiceAwareTrait;
use Application\Service\MetierReference\MetierReferenceServiceAwareTrait;
@@ -27,13 +23,11 @@ use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;

class MetierController extends AbstractActionController {
    use DomaineServiceAwareTrait;
    use FamilleProfessionnelleServiceAwareTrait;
    use MetierServiceAwareTrait;
    use MetierReferenceServiceAwareTrait;
    use MetierReferentielServiceAwareTrait;

    use DomaineFormAwareTrait;
    use MetierFormAwareTrait;
    use ModifierLibelleFormAwareTrait;
    use MetierReferentielFormAwareTrait;
@@ -159,108 +153,6 @@ class MetierController extends AbstractActionController {
        return $vm;
    }

    /** DOMAINE *******************************************************************************************************/

    public function ajouterDomaineAction()
    {
        /** @var Domaine $domaine */
        $domaine = new Domaine();

        /** @var DomaineForm $form */
        $form = $this->getDomaineForm();
        $form->setAttribute('action', $this->url()->fromRoute('metier/ajouter-domaine', [], [], true));
        $form->bind($domaine);

        /** @var Request $request */
        $request = $this->getRequest();
        if ($request->isPost()) {
            $data = $request->getPost();
            $form->setData($data);
            if ($form->isValid()) {
                $this->getDomaineService()->create($domaine);
            }
        }

        $vm = new ViewModel();
        $vm->setTemplate('application/default/default-form');
        $vm->setVariables([
            'title' => 'Ajouter un domaine',
            'form' => $form,
        ]);
        return $vm;
    }

    public function modifierDomaineAction()
    {
        $domaine = $this->getDomaineService()->getRequestedDomaine($this);

        /** @var DomaineForm $form */
        $form = $this->getDomaineForm();
        $form->setAttribute('action', $this->url()->fromRoute('metier/modifier-domaine', ['domaine' => $domaine->getId()], [], true));
        $form->bind($domaine);

        /** @var Request $request */
        $request = $this->getRequest();
        if ($request->isPost()) {
            $data = $request->getPost();
            $form->setData($data);
            if ($form->isValid()) {
                $this->getDomaineService()->update($domaine);
            }
        }

        $vm = new ViewModel();
        $vm->setTemplate('application/default/default-form');
        $vm->setVariables([
            'title' => 'Modifier un domaine',
            'form' => $form,
        ]);
        return $vm;
    }

    public function historiserDomaineAction()
    {
        $domaine = $this->getDomaineService()->getRequestedDomaine($this);
        if ($domaine !== null) {
            $this->getDomaineService()->historise($domaine);
        }
        return $this->redirect()->toRoute('metier', [], ['fragment'=>'domaine'], true);
    }

    public function restaurerDomaineAction()
    {
        $domaine = $this->getDomaineService()->getRequestedDomaine($this);
        if ($domaine !== null) {
            $this->getDomaineService()->restore($domaine);
        }
        return $this->redirect()->toRoute('metier', [], ['fragment'=>'domaine'], true);
    }

    public function effacerDomaineAction()
    {
        $domaine = $this->getDomaineService()->getRequestedDomaine($this);

        /** @var Request $request */
        $request = $this->getRequest();
        if ($request->isPost()) {
            $data = $request->getPost();
            if ($data["reponse"] === "oui") $this->getDomaineService()->delete($domaine);
            //return $this->redirect()->toRoute('home');
            exit();
        }

        $vm = new ViewModel();
        if ($domaine !== null) {
            $vm->setTemplate('application/default/confirmation');
            $vm->setVariables([
                'title' => "Suppression du domaine " . $domaine->getLibelle(),
                'text' => "La suppression est définitive êtes-vous sûr&middot;e de vouloir continuer ?",
                'action' => $this->url()->fromRoute('metier/effacer-domaine', ["domaine" => $domaine->getId()], [], true),
            ]);
        }
        return $vm;
    }

    /** METIER ********************************************************************************************************/

    public function ajouterMetierAction()
Loading