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

up

parent 169eb930
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -42,6 +42,7 @@ return [

                        'modifier-libelle',
                        'gerer-domaines',
                        'gerer-niveau',

                        'ajouter-activite',
                        'modifier-activite',
@@ -231,6 +232,17 @@ return [
                            ],
                        ],
                    ],
                    'gerer-niveau' => [
                        'type'  => Segment::class,
                        'options' => [
                            'route'    => '/gerer-niveau/:mission-principale',
                            'defaults' => [
                                /** @see MissionPrincipaleController::gererNiveauAction() */
                                'controller' => MissionPrincipaleController::class,
                                'action'     => 'gerer-niveau',
                            ],
                        ],
                    ],
                ],
            ],
        ],
+41 −0
Original line number Diff line number Diff line
@@ -3,6 +3,9 @@
namespace FicheMetier\Controller;

use Application\Form\ModifierLibelle\ModifierLibelleFormAwareTrait;
use Carriere\Entity\Db\NiveauEnveloppe;
use Carriere\Form\NiveauEnveloppe\NiveauEnveloppeFormAwareTrait;
use Carriere\Service\NiveauEnveloppe\NiveauEnveloppeServiceAwareTrait;
use FicheMetier\Entity\Db\Mission;
use FicheMetier\Entity\Db\MissionActivite;
use FicheMetier\Service\MissionPrincipale\MissionPrincipaleServiceAwareTrait;
@@ -14,8 +17,10 @@ use Metier\Form\SelectionnerDomaines\SelectionnerDomainesFormAwareTrait;
class MissionPrincipaleController extends AbstractActionController
{
    use MissionPrincipaleServiceAwareTrait;
    use NiveauEnveloppeServiceAwareTrait;

    use ModifierLibelleFormAwareTrait;
    use NiveauEnveloppeFormAwareTrait;
    use SelectionnerDomainesFormAwareTrait;

    public function indexAction() : ViewModel
@@ -166,6 +171,42 @@ class MissionPrincipaleController extends AbstractActionController
        return $vm;
    }

    public function gererNiveauAction() : ViewModel
    {
        $mission = $this->getMissionPrincipaleService()->getRequestedMissionPrincipale($this);

        $niveaux = $mission->getNiveau();
        if ($niveaux === null) {
            $niveaux = new NiveauEnveloppe();
        }

        $form = $this->getNiveauEnveloppeForm();
        $form->setAttribute('action', $this->url()->fromRoute('mission-principale/gerer-niveau', ['mission-principale' => $mission->getId()], [], true));
        $form->bind($niveaux);

        $request = $this->getRequest();
        if($request->isPost()) {
            $data = $request->getPost();
            $form->setData($data);
            if ($form->isValid()) {
                if ($niveaux->getHistoCreation()) {
                    $this->getNiveauEnveloppeService()->update($niveaux);
                } else {
                    $this->getNiveauEnveloppeService()->create($niveaux);
                    $mission->setNiveau($niveaux);
                    $this->getMissionPrincipaleService()->update($mission);
                }
            }
        }

        $vm = new ViewModel([
            'title' => "Modifier le niveau associé à la mission",
            'form' => $form,
        ]);
        $vm->setTemplate('metier/default/default-form');
        return $vm;
    }

    public function ajouterActiviteAction() : ViewModel
    {
        $mission = $this->getMissionPrincipaleService()->getRequestedMissionPrincipale($this);
+8 −0
Original line number Diff line number Diff line
@@ -3,6 +3,8 @@
namespace FicheMetier\Controller;

use Application\Form\ModifierLibelle\ModifierLibelleForm;
use Carriere\Form\NiveauEnveloppe\NiveauEnveloppeForm;
use Carriere\Service\NiveauEnveloppe\NiveauEnveloppeService;
use FicheMetier\Service\MissionPrincipale\MissionPrincipaleService;
use Metier\Form\SelectionnerDomaines\SelectionnerDomainesForm;
use Psr\Container\ContainerExceptionInterface;
@@ -21,19 +23,25 @@ class MissionPrincipaleControllerFactory {
    {
        /**
         * @var MissionPrincipaleService $missionPrincipaleService
         * @var NiveauEnveloppeService $niveauEnveloppeService
         */
        $missionPrincipaleService = $container->get(MissionPrincipaleService::class);
        $niveauEnveloppeService = $container->get(NiveauEnveloppeService::class);

        /**
         * @var ModifierLibelleForm $modifierLibelleForm
         * @var NiveauEnveloppeForm $niveauEnveloppeForm
         * @var SelectionnerDomainesForm $selectionDomainesForm
         */
        $modifierLibelleForm = $container->get('FormElementManager')->get(ModifierLibelleForm::class);
        $niveauEnveloppeForm = $container->get('FormElementManager')->get(NiveauEnveloppeForm::class);
        $selectionDomainesForm = $container->get('FormElementManager')->get(SelectionnerDomainesForm::class);

        $controller = new MissionPrincipaleController();
        $controller->setMissionPrincipaleService($missionPrincipaleService);
        $controller->setNiveauEnveloppeService($niveauEnveloppeService);
        $controller->setModifierLibelleForm($modifierLibelleForm);
        $controller->setNiveauEnveloppeForm($niveauEnveloppeForm);
        $controller->setSelectionnerDomainesForm($selectionDomainesForm);
        return $controller;
    }
+18 −1
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ $canSupprimer = $this->isAllowed(MissionPrincipalePrivileges::getResourceId(Miss
    <thead>
        <tr>
            <th> Libellé </th>
            <th style="width: 15rem;"> Domaines & niveau</th>
            <th style="width: 10rem;"> Liens </th>
            <th class="action"> Action </th>
        </tr>
@@ -45,6 +46,23 @@ $canSupprimer = $this->isAllowed(MissionPrincipalePrivileges::getResourceId(Miss
    <?php foreach ($missions as $mission) : ?>
        <tr class="<?php if ($mission->estHistorise()) echo " historise ";?>">
            <td> <?php echo $mission->getLibelle(); ?> </td>
            <td>
                <?php if (empty($mission->getDomaines())) : ?>
                    <p><em>Aucun domaine</em></p>
                <?php else : ?>
                <ul>
                    <?php foreach ($mission->getDomaines() as $domaine) : ?>
                        <li> <?php echo $domaine->getLibelle(); ?> </li>
                    <?php endforeach; ?>
                </ul>
                <?php endif; ?>

                <?php if ($mission->getNiveau() === null) : ?>
                    <p><em>Niveau non précisé</em></p>
                <?php else : ?>
                    Niveau : <?php echo $this->niveauEnveloppe($mission->getNiveau()); ?>
                <?php endif; ?>
            </td>
            <td>
                Fiche métier : <?php echo count($mission->getListeFicheMetier()); ?> <br/>
                Fiche de poste : <span class="todo"> ?</span>
@@ -63,7 +81,6 @@ $canSupprimer = $this->isAllowed(MissionPrincipalePrivileges::getResourceId(Miss
                    <br/>
                    <?php /** @see \FicheMetier\Controller\MissionPrincipaleController::modifierAction() */ ?>
                    <a href="<?php echo $this->url('mission-principale/modifier', ['mission-principale' => $mission->getId()], [], true); ?>"
                       class="ajax-modal"
                    >
                        <span class="icon icon-editer"></span>
                        modifier
+11 −1
Original line number Diff line number Diff line
@@ -84,7 +84,17 @@ $canModifier = ($modification AND $this->isAllowed(MissionPrincipalePrivileges::
            <li> <?php echo $domaine->getLibelle(); ?> </li>
        <?php endforeach; ?>
    </dd>
    <dt> Niveau </dt>
    <dt> Niveau
        <?php if ($canModifier) : ?>
            <?php /** @see \FicheMetier\Controller\MissionPrincipaleController::gererNiveauAction() */ ?>
            <a href="<?php echo $this->url('mission-principale/gerer-niveau', ['mission-principale' => $mission->getId()], [], true); ?>"
               class="btn btn-primary btn-sm ajax-modal" data-event="modification"
            >
                <span class="icon icon-editer"></span>
                Gérer le niveau associé
            </a>
        <?php endif; ?>
    </dt>
    <dd> <?php echo $this->niveauEnveloppe($mission->getNiveau()); ?> </dd>
</dl>