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

Ajout de l'entretien professtion dans l'index de l'agent

parent 2966bbe4
Loading
Loading
Loading
Loading
+20 −0
Original line number Diff line number Diff line
@@ -6,6 +6,7 @@ use Application\Controller\Agent\AgentController;
use Application\Controller\Agent\AgentControllerFactory;
use Application\Controller\AgentFichier\AgentFichierController;
use Application\Controller\AgentFichier\AgentFichierControllerFactory;
use Application\Controller\EntretienProfessionnel\EntretienProfessionnelController;
use Application\Form\Agent\AgentForm;
use Application\Form\Agent\AgentFormFactory;
use Application\Form\Agent\AgentHydrator;
@@ -73,6 +74,15 @@ return [
                        AgentPrivileges::AFFICHER,
                    ],
                ],
                [
                    'controller' => EntretienProfessionnelController::class,
                    'action' => [
                        'index-agent',
                    ],
                    'privileges' => [
                        AgentPrivileges::AFFICHER,
                    ],
                ],
            ],
        ],
    ],
@@ -100,6 +110,16 @@ return [
                            ],
                        ],
                    ],
                    'entretien-professionnel' => [
                        'type'  => Segment::class,
                        'options' => [
                            'route'    => '/entretien-professionnel[/:agent]',
                            'defaults' => [
                                'controller' => EntretienProfessionnelController::class,
                                'action'     => 'index-agent',
                            ],
                        ],
                    ],
                    'upload-fichier' => [
                        'type'  => Segment::class,
                        'options' => [
+12 −0
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ return [
                        'historiser',
                        'restaurer',
                        'detruire',
                        'afficher',
                    ],
                    'privileges' => [
                        ApplicationPrivileges::AFFICHER,
@@ -61,6 +62,17 @@ return [
                            ],
                        ],
                    ],
                    'afficher' => [
                        'type'  => Segment::class,
                        'may_terminate' => true,
                        'options' => [
                            'route'    => '/afficher/:entretien',
                            'defaults' => [
                                'controller' => EntretienProfessionnelController::class,
                                'action'     => 'afficher',
                            ],
                        ],
                    ],
                    'modifier' => [
                        'type'  => Segment::class,
                        'may_terminate' => true,
+21 −21
Original line number Diff line number Diff line
@@ -27,22 +27,22 @@ return [
                            'Personnel'
                        ],
                        'pages' => [
//                            'index-personnel' => [
//                                'visible' => true,
//                                'order' => 100,
//                                'label' => 'Mon accueil',
//                                'icon' => 'fas fa-angle-right',
//                                'route' => 'index-personnel',
//                                'roles' => [
//                                    'Personnel',
//                                ],
//                            ],
                            'index-personnel' => [
                                'visible' => true,
                                'order' => 100,
                                'label' => 'Mon accueil',
                                'icon' => 'fas fa-angle-right',
                                'route' => 'index-personnel',
                                'roles' => [
                                    'Personnel',
                                ],
                            ],
                            'entretien' => [
                                'visible' => true,
                                'order' => 200,
                                'label' => 'Mes entretiens Pro.',
                                'icon' => 'fas fa-angle-right',
                                'route' => 'entretien-professionnel',
                                'route' => 'agent/entretien-professionnel',
                                'roles' => [
                                    'Personnel',
                                ],
@@ -57,16 +57,16 @@ return [
                                    'Personnel',
                                ],
                            ],
                            'rgpd' => [
                                'visible' => true,
                                'order' => 400,
                                'label' => 'Mes données',
                                'icon' => 'fas fa-angle-right',
                                'route' => 'index-personnel',
                                'roles' => [
                                    'Personnel',
                                ],
                            ],
//                            'rgpd' => [
//                                'visible' => true,
//                                'order' => 400,
//                                'label' => 'Mes données',
//                                'icon' => 'fas fa-angle-right',
//                                'route' => 'index-personnel',
//                                'roles' => [
//                                    'Personnel',
//                                ],
//                            ],

                        ],
                    ],
+39 −0
Original line number Diff line number Diff line
@@ -4,15 +4,21 @@ namespace Application\Controller\EntretienProfessionnel;

use Application\Entity\Db\EntretienProfessionnel;
use Application\Form\EntretienProfessionnel\EntretienProfessionnelFormAwareTrait;
use Application\Service\Agent\AgentServiceAwareTrait;
use Application\Service\EntretienProfessionnel\EntretienProfessionnelServiceAwareTrait;
use Autoform\Entity\Db\FormulaireInstance;
use Autoform\Service\Formulaire\FormulaireInstanceServiceAwareTrait;
use Autoform\Service\Formulaire\FormulaireServiceAwareTrait;
use UnicaenApp\Exception\RuntimeException;
use Utilisateur\Service\User\UserServiceAwareTrait;
use Zend\Http\Request;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;

class EntretienProfessionnelController extends AbstractActionController {
    use AgentServiceAwareTrait;
    use UserServiceAwareTrait;

    use EntretienProfessionnelFormAwareTrait;
    use EntretienProfessionnelServiceAwareTrait;
    use FormulaireServiceAwareTrait;
@@ -27,6 +33,29 @@ class EntretienProfessionnelController extends AbstractActionController {
        ]);
    }

    public function indexAgentAction()
    {
        $agent = $this->getAgentService()->getRequestedAgent($this,'agent');

        if ($agent === null) {
            $user = $this->getUserService()->getConnectedUser();
            $agent = $this->getAgentService()->getAgentByUser($user);

            if ($agent !== null) {
                $this->redirect()->toRoute('agent/entretien-professionnel', ['agent' => $agent->getId()], [], true);
            } else {
                throw new RuntimeException("L'utilisateur connecté n'est pas associté à un agent !");
            }
        }

        $entretiens = $this->getEntretienProfessionnelService()->getEntretiensProfessionnelsParAgent($agent);

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

    public function creerAction()
    {
        $entretien = new EntretienProfessionnel();
@@ -60,6 +89,16 @@ class EntretienProfessionnelController extends AbstractActionController {
        return $vm;
    }

    public function afficherAction()
    {
        $entretien = $this->getEntretienProfessionnelService()->getRequestedEntretienProfessionnel($this, 'entretien');

        return new ViewModel([
            'title' => 'Entretien professionnel '.$entretien->getAnnee().' de '.$entretien->getAgent()->getDenomination(),
            'entretien' => $entretien,
        ]);
    }

    public function modifierAction()
    {
        $entretien = $this->getEntretienProfessionnelService()->getRequestedEntretienProfessionnel($this, 'entretien');
+8 −0
Original line number Diff line number Diff line
@@ -3,9 +3,11 @@
namespace Application\Controller\EntretienProfessionnel;

use Application\Form\EntretienProfessionnel\EntretienProfessionnelForm;
use Application\Service\Agent\AgentService;
use Application\Service\EntretienProfessionnel\EntretienProfessionnelService;
use Autoform\Service\Formulaire\FormulaireInstanceService;
use Autoform\Service\Formulaire\FormulaireService;
use Utilisateur\Service\User\UserService;
use Zend\Mvc\Controller\ControllerManager;

class EntretienProfessionnelControllerFactory {
@@ -13,10 +15,14 @@ class EntretienProfessionnelControllerFactory {
    public function __invoke(ControllerManager $manager)
    {
        /**
         * @var AgentService $agentService
         * @var UserService $userService
         * @var EntretienProfessionnelService $entretienProfesionnelService
         * @var FormulaireService $formulaireService
         * @var FormulaireInstanceService $formulaireInstanceService
         */
        $agentService = $manager->getServiceLocator()->get(AgentService::class);
        $userService = $manager->getServiceLocator()->get(UserService::class);
        $entretienProfesionnelService = $manager->getServiceLocator()->get(EntretienProfessionnelService::class);
        $formulaireService = $manager->getServiceLocator()->get(FormulaireService::class);
        $formulaireInstanceService = $manager->getServiceLocator()->get(FormulaireInstanceService::class);
@@ -26,6 +32,8 @@ class EntretienProfessionnelControllerFactory {

        /** @var EntretienProfessionnelController $controller */
        $controller = new EntretienProfessionnelController();
        $controller->setAgentService($agentService);
        $controller->setUserService($userService);
        $controller->setEntretienProfessionnelService($entretienProfesionnelService);
        $controller->setFormulaireInstanceService($formulaireInstanceService);
        $controller->setFormulaireService($formulaireService);
Loading