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

Ajout de fiche

parent 70aa0146
Loading
Loading
Loading
Loading
+71 −1
Changes for module/Application/config/merged/fiche-metier.config.php: 71 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -4,6 +4,10 @@ namespace Application;

use Application\Controller\FicheMetier\FicheMetierController;
use Application\Controller\FicheMetier\FicheMetierControllerFactory;
use Application\Form\FicheMetier\FicheMetierCreationForm;
use Application\Form\FicheMetier\FicheMetierCreationFormFactory;
use Application\Form\FicheMetier\FicheMetierCreationHydrator;
use Application\Form\FicheMetier\FicheMetierCreationHydratorFactory;
use Application\Provider\Privilege\FicheMetierPrivileges;
use Application\Service\FicheMetier\FicheMetierService;
use Application\Service\FicheMetier\FicheMetierServiceFactory;
@@ -42,6 +46,16 @@ return [
                        FicheMetierPrivileges::HISTORISER,
                    ],
                ],
                [
                    'controller' => FicheMetierController::class,
                    'action' => [
                        'editer',
                        'creer',
                    ],
                    'privileges' => [
                        FicheMetierPrivileges::EDITER,
                    ],
                ],
            ],
        ],
    ],
@@ -90,6 +104,51 @@ return [
                            ],
                        ],
                    ],
                    'editer' => [
                        'type'  => Segment::class,
                        'options' => [
                            'route'    => '/editer/:id/:section',
                            'defaults' => [
                                'controller' => FicheMetierController::class,
                                'action'     => 'editer',
                            ],
                        ],
                    ],
                    'creer' => [
                        'type'  => Literal::class,
                        'options' => [
                            'route'    => '/creer',
                            'defaults' => [
                                'controller' => FicheMetierController::class,
                                'action'     => 'creer',
                            ],
                        ],
                    ]
                ],
            ],
        ],
    ],

    'navigation' => [
        'default' => [
            'home' => [
                'pages' => [
                    'fiche-metier' => [
                        'order' => -10,
                        'label' => 'Fiche métier',
                        'title' => "Fiche métier",
                        'route' => 'fiche-metier',
                        'roles' => [], //PrivilegeController::getResourceId(__NAMESPACE__ . '\Controller\Administration', 'index'),
                        'pages' => [
//                            [
//                                'label' => "Droits et privilèges",
//                                'route' => 'droits',
//                                'roles' => [],//'resource' => PrivilegeController::getResourceId('UnicaenAuth\Controller\Droits', 'index'),
//                                'dropdown-header' => true,
//                                'icon' => 'fas fa-user',
//                            ],
                        ],
                    ],
                ],
            ],
        ],
@@ -105,6 +164,17 @@ return [
    'controllers'     => [
        'factories' => [
            FicheMetierController::class => FicheMetierControllerFactory::class,
        ]
        ],
    ],
    'form_elements' => [
        'factories' => [
            FicheMetierCreationForm::class => FicheMetierCreationFormFactory::class,
        ],
    ],
    'hydrators' => [
        'factories' => [
            FicheMetierCreationHydrator::class => FicheMetierCreationHydratorFactory::class,
        ]
    ]

];
 No newline at end of file
+3 −0
Changes for module/Application/config/module.config.php: 3 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -2,6 +2,8 @@

namespace Application;

use Application\Service\Affectation\AffectationService;
use Application\Service\Affectation\AffectationServiceFactory;
use Application\Service\MailService\MailService;
use Application\Service\MailService\MailServiceFactory;
use Application\Service\Role\RoleService;
@@ -62,6 +64,7 @@ return [
        'factories' => [
            MailService::class => MailServiceFactory::class,
            RoleService::class => RoleServiceFactory::class,
            AffectationService::class => AffectationServiceFactory::class,
        ],
    ],
    'controllers'     => [
+44 −1
Changes for module/Application/src/Application/Controller/FicheMetier/FicheMetierController.php: 44 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -2,8 +2,11 @@

namespace Application\Controller\FicheMetier;

use Application\Entity\Db\FicheMetier;
use Application\Form\FicheMetier\FicheMetierCreationForm;
use Application\Service\FicheMetier\FicheMetierServiceAwareTrait;
use UnicaenApp\Exception\RuntimeException;
use Zend\Http\Request;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;

@@ -21,7 +24,15 @@ class FicheMetierController extends AbstractActionController
    }

    public function afficherAction() {
        return new ViewModel();

        $ficheId = $this->params()->fromRoute('id');
        $fiche = $this->getFicheMetierService()->getFicheMetier($ficheId);

        if ($fiche === null) throw new RuntimeException("Aucune fiche ne porte l'identifiant [".$ficheId."]");

        return new ViewModel([
            'fiche' => $fiche,
        ]);
    }

    public function historiserAction()
@@ -45,4 +56,36 @@ class FicheMetierController extends AbstractActionController
        $this->getFicheMetierService()->restaurer($fiche);
        $this->redirect()->toRoute('fiche-metier',[], [], true);
    }

    public function editerAction()
    {
        $libelle = 'Environnement du poste de travail dans l\'organisation';
        return new ViewModel([
            'title' => "Édition de <em>".$libelle."</em>",
        ]);
    }

    public function creerAction()
    {
        /** @var FicheMetierCreationForm $form */
        $form = $this->getServiceLocator()->get('FormElementManager')->get(FicheMetierCreationForm::class);
        $fiche = new FicheMetier();
        $form->bind($fiche);

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

                $fiche = $this->getFicheMetierService()->creer($fiche);
                $this->redirect()->toRoute('fiche-metier/afficher', ['id' => $fiche->getId()], [], true);
            }
        }

        return new ViewModel([
           'form' => $form,
        ]);
    }
}
 No newline at end of file
+44 −0
Changes for module/Application/src/Application/Entity/Db/Affectation.php: 44 added lines, 0 removed lines.
Original line number Diff line number Diff line
<?php

namespace Application\Entity\Db;

class Affectation {

    /** @var int */
    private $id;
    /** @var string */
    private $libelle;

    /**
     * @return int
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * @return string
     */
    public function getLibelle()
    {
        return $this->libelle;
    }

    /**
     * @param string $libelle
     * @return Affectation
     */
    public function setLibelle($libelle)
    {
        $this->libelle = $libelle;
        return $this;
    }

    public function __toString()
    {
        return $this->libelle;
    }


}
 No newline at end of file
+43 −0
Changes for module/Application/src/Application/Entity/Db/FicheMetier.php: 43 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -12,6 +12,10 @@ class FicheMetier
    private $id;
    /** @var string */
    private $libelle;
    /** @var Affectation */
    private $affectation;
    /** @var string */
    private $environnement;

    public function getId()
    {
@@ -36,5 +40,44 @@ class FicheMetier
        return $this;
    }

    /**
     * @return Affectation
     */
    public function getAffectation()
    {
        return $this->affectation;
    }

    /**
     * @param Affectation $affectation
     * @return FicheMetier
     */
    public function setAffectation($affectation)
    {
        $this->affectation = $affectation;
        return $this;
    }



    /**
     * @return string
     */
    public function getEnvironnement()
    {
        return $this->environnement;
    }

    /**
     * @param string $environnement
     * @return FicheMetier
     */
    public function setEnvironnement($environnement)
    {
        $this->environnement = $environnement;
        return $this;
    }



}
 No newline at end of file
Loading