Commit e3cd9f6a authored by Laurent Lecluse's avatar Laurent Lecluse
Browse files

Merge branch 'master' of https://git.unicaen.fr/open-source/OSE

parents 145e21f2 c7d4c193
Loading
Loading
Loading
Loading
+2 −0
Changes for data/privileges.php: 2 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -338,6 +338,8 @@ return [
            'annees-visualisation'           => 'Années - Visualisation',
            'periodes-edition'               => 'Périodes - Édition',
            'periodes-visualisation'         => 'Périodes - Visualisation',
            'etablissement-edition'          => 'Établissement - Édition',
            'etablissement-visualisation'    => 'Établissement - Visualisation',
        ],
    ],

+12 −3
Changes for module/Application/config/administration.config.php: 12 added lines, 3 removed lines.
Original line number Diff line number Diff line
@@ -99,7 +99,7 @@ return [
                        'order'    => 7,
                        'pages'    => [
                            'gestion-referentiel-commun' => [
                                'label'          => 'Gestion dictonnaires de données',
                                'label'          => 'Gestion dictionnaires de données',
                                'icon'           => 'glyphicon glyphicon - list-alt',
                                'route'          => 'administration-referentiel-commun',
                                'resource'       => PrivilegeController::getResourceId('Application\Controller\Administration', 'administration-referentiel-commun'),
@@ -145,13 +145,21 @@ return [
                                ],
                            ],
                            'gestion-periode'         => [
                                'label'          => 'Gestion des periodes',
                                'label'          => 'Gestion des périodes',
                                'icon'           => 'glyphicon glyphicon - list-alt',
                                'route'          => 'periodes',
                                'resource'       => PrivilegeController::getResourceId('Application\Controller\Periode', 'index'),
                                'order'          => 84,
                                'border - color' => '#111',
                            ],
                            'gestion-etablissement'   => [
                                'label'          => 'Gestion des établissements',
                                'icon'           => 'glyphicon glyphicon - list-alt',
                                'route'          => 'etablissement',
                                'resource'       => PrivilegeController::getResourceId('Application\Controller\Etablissement', 'index'),
                                'order'          => 85,
                                'border - color' => '#111',
                            ],
                            'gestion-intervenant'     => [
                                'label'          => 'Gestion intervenants (Statuts, PJ,  etc...)',
                                'icon'           => 'glyphicon glyphicon - list-alt',
@@ -236,7 +244,8 @@ return [
                                     'administration-intervenant',
                                     'administration-referentiel-commun',
                                     'administration-nomenclature-rh',
                                     'administration-periode',],
                                     'administration-periode',
                                     'administration-etablissement',],
                    'privileges' => [
                        Privileges::IMPORT_ECARTS,
                        Privileges::IMPORT_MAJ,
+30 −7
Changes for module/Application/config/etablissement.config.php: 30 added lines, 7 removed lines.
Original line number Diff line number Diff line
@@ -2,6 +2,9 @@

namespace Application;

use UnicaenAuth\Guard\PrivilegeController;
use Application\Provider\Privilege\Privileges;

return [
    'router'          => [
        'routes' => [
@@ -37,18 +40,25 @@ return [
                            ],
                        ],
                    ],
                    'default'   => [
                    'saisie'    => [
                        'type'          => 'Segment',
                        'options'       => [
                            'route'       => '/:action[/:id]',
                            'constraints' => [
                                'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
                                'id'     => '[0-9]*',
                            'route'    => '/saisie[/:etablissement]',
                            'defaults' => [
                                'action' => 'saisie',
                            ],
                        ],
                        'may_terminate' => true,
                    ],
                    'supprimer' => [
                        'type'          => 'Segment',
                        'options'       => [
                            'route'    => '/supprimer/:etablissement',
                            'defaults' => [
                                'action' => 'index',
                                'action' => 'supprimer',
                            ],
                        ],
                        'may_terminate' => true,
                    ],
                ],
            ],
@@ -59,10 +69,23 @@ return [
            'BjyAuthorize\Guard\Controller' => [
                [
                    'controller' => 'Application\Controller\Etablissement',
                    'action'     => ['index', 'choisir', 'recherche', 'voir', 'apercevoir'],
                    'action'     => ['choisir', 'recherche', 'voir', 'apercevoir',],
                    'roles'      => ['user']],
            ],
            PrivilegeController::class      => [
                [
                    'controller' => 'Application\Controller\Etablissement',
                    'action'     => ['index'],
                    'privileges' => [Privileges::PARAMETRES_ETABLISSEMENT_VISUALISATION],
                ],
                [
                    'controller' => 'Application\Controller\Etablissement',
                    'action'     => ['saisie', 'supprimer'],
                    'privileges' => [Privileges::PARAMETRES_ETABLISSEMENT_EDITION],
                ],
            ],
        ],

    ],
    'controllers'     => [
        'invokables' => [
+59 −3
Changes for module/Application/src/Controller/EtablissementController.php: 59 added lines, 3 removed lines.
Original line number Diff line number Diff line
@@ -2,9 +2,12 @@

namespace Application\Controller;

use Application\Form\Etablissement\Traits\EtablissementSaisieFormAwareTrait;
use Application\Service\Traits\EtablissementServiceAwareTrait;
use RuntimeException;
use LogicException;
use Laminas\View\Model\JsonModel;
use UnicaenApp\View\Model\MessengerViewModel;

/**
 * Description of EtablissementController
@@ -15,14 +18,22 @@ class EtablissementController extends AbstractController
{
    use \Application\Service\Traits\ContextServiceAwareTrait;
    use \Application\Service\Traits\EtablissementServiceAwareTrait;
    use EtablissementSaisieFormAwareTrait;
    use EtablissementServiceAwareTrait;


    public function indexAction()
    {
        $url = $this->url()->fromRoute('etablissement/default', ['action' => 'choisir']);
        return $this->redirect()->toUrl($url);
//        $url = $this->url()->fromRoute('etablissement/default', ['action' => 'choisir']);
//        return $this->redirect()->toUrl($url);
        $query          = $this->em()->createQuery('SELECT e FROM Application\Entity\Db\Etablissement e WHERE e.histoDestruction is null');
        $etablissements = $query->getResult();

        return compact('etablissements');
    }



    /**
     *
     * @return \Laminas\View\Model\ViewModel
@@ -46,6 +57,7 @@ class EtablissementController extends AbstractController
            $form->setData($data);
            if ($form->isValid()) {
                $url = $this->url()->fromRoute('etablissement/default', ['action' => 'voir', 'id' => $form->get('etablissement')->getValueId()]);

                return $this->redirect()->toUrl($url);
            }
        }
@@ -53,6 +65,8 @@ class EtablissementController extends AbstractController
        return compact('form');
    }



    public function rechercheAction()
    {
        $this->em()->getFilters()->enable('historique')->init([
@@ -66,7 +80,8 @@ class EtablissementController extends AbstractController
        $entities = $this->getServiceEtablissement()->finderByLibelle($term)->getQuery()->execute();
        $result   = [];

        foreach ($entities as $item) { /* @var $item \Application\Entity\Db\Etablissement */
        foreach ($entities as $item) {
            /* @var $item \Application\Entity\Db\Etablissement */
            $result[] = [
                'id'    => $item->getId(),  // identifiant unique de l'item
                'label' => (string)$item,   // libellé de l'item
@@ -77,6 +92,8 @@ class EtablissementController extends AbstractController
        return new JsonModel($result);
    }



    public function voirAction()
    {
        if (!($id = $this->params()->fromRoute('id', $this->params()->fromPost('id')))) {
@@ -91,6 +108,8 @@ class EtablissementController extends AbstractController
        return compact('etablissement', 'title');
    }



    public function apercevoirAction()
    {
        if (!($id = $this->params()->fromRoute('id', $this->params()->fromPost('id')))) {
@@ -106,4 +125,41 @@ class EtablissementController extends AbstractController

        return $viewModel;
    }



    public function saisieAction()
    {
        $etablissement = $this->getEvent()->getParam('etablissement');
        $form          = $this->getFormEtablissementSaisie();

        if (empty($etablissement)) {
            $title         = "Création d'un nouvel établissement";
            $etablissement = $this->getServiceEtablissement()->newEntity();
        } else {
            $title = "Edition d'un établissement";
        }
        $form->bindRequestSave($etablissement, $this->getRequest(), function () use ($etablissement, $form) {
            try {
                $this->getServiceEtablissement()->save($etablissement);
                $this->flashMessenger()->addSuccessMessage(
                    "Ajout réussis"
                );
            } catch (Exception $e) {
                $this->flashMessenger()->addErrorMessage($this->translate($e));
            }
        });

        return compact('form', 'title');
    }



    public function supprimerAction()
    {
        $etablissement = $this->getEvent()->getParam('etablissement');
        $this->getServiceEtablissement()->delete($etablissement, true);

        return new MessengerViewModel();
    }
}
 No newline at end of file
+2 −2
Changes for module/Application/src/Controller/PeriodeController.php: 2 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -41,10 +41,10 @@ class PeriodeController extends AbstractController
        $form    = $this->getFormPeriodeSaisie();

        if (empty($periode)) {
            $title   = "Création d'une nouvelle periode";
            $title   = "Création d'une nouvelle période";
            $periode = $this->getServicePeriode()->newEntity();
        } else {
            $title = "Edition d'une periode";
            $title = "Edition d'une période";
        }

        $form->bindRequestSave($periode, $this->getRequest(), function () use ($periode, $form) {
Loading