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

Début de mise en place de la spécificité de poste

parent 01cf0431
Loading
Loading
Loading
Loading
+15 −0
Changes for module/Application/config/merged/fiche-metier.config.php: 15 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -18,6 +18,8 @@ use Application\Form\FicheMetier\FicheMetierCreationForm;
use Application\Form\FicheMetier\FicheMetierCreationFormFactory;
use Application\Form\FicheMetier\FicheMetierCreationHydrator;
use Application\Form\FicheMetier\FicheMetierCreationHydratorFactory;
use Application\Form\FicheMetier\SpecificitePosteForm;
use Application\Form\FicheMetier\SpecificitePosteFormFactory;
use Application\Form\FicheMetierType\ActiviteExistanteForm;
use Application\Form\FicheMetierType\ActiviteExistanteFormFactory;
use Application\Form\FicheMetierType\LibelleForm;
@@ -58,6 +60,7 @@ return [
                        'ajouter-mission-complementaire',
                        'editer-mission-complementaire',
                        'supprimer-mission-complementaire',
                        'editer-specificite-poste',
                    ],
                    'privileges' => [
                        FicheMetierPrivileges::AFFICHER,
@@ -134,6 +137,17 @@ return [
                        ],
                        'may_terminate' => true,
                    ],
                    'specificite' => [
                        'type'  => Segment::class,
                        'options' => [
                            'route'    => '/specificite/:id',
                            'defaults' => [
                                'controller' => FicheMetierController::class,
                                'action'     => 'editer-specificite-poste',
                            ],
                        ],
                        'may_terminate' => true,
                    ],
                    'historiser' => [
                        'type'  => Segment::class,
                        'options' => [
@@ -359,6 +373,7 @@ return [

            AgentForm::class => AgentFormFactory::class,
            MissionComplementaireForm::class => MissionComplementaireFormFactory::class,
            SpecificitePosteForm::class => SpecificitePosteFormFactory::class,
        ],
    ],
    'hydrators' => [
+35 −0
Changes for module/Application/src/Application/Controller/FicheMetier/FicheMetierController.php: 35 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -5,9 +5,11 @@ namespace Application\Controller\FicheMetier;
use Application\Entity\Db\Agent;
use Application\Entity\Db\FicheMetier;
use Application\Entity\Db\MissionComplementaire;
use Application\Entity\Db\SpecificitePoste;
use Application\Form\Agent\AgentForm;
use Application\Form\Agent\MissionComplementaireForm;
use Application\Form\FicheMetier\FicheMetierCreationForm;
use Application\Form\FicheMetier\SpecificitePosteForm;
use Application\Service\Agent\AgentServiceAwareTrait;
use Application\Service\FicheMetier\FicheMetierServiceAwareTrait;
use UnicaenApp\Exception\RuntimeException;
@@ -38,6 +40,7 @@ class FicheMetierController extends AbstractActionController

        return new ViewModel([
            'fiche' => $fiche,
            'specificite' => $this->getFicheMetierService()->getSpecificitePoste(9),
        ]);
    }

@@ -217,4 +220,36 @@ class FicheMetierController extends AbstractActionController
        $this->getAgentService()->deleteMissionComplementaire($mission);
        $this->redirect()->toRoute('fiche-metier/afficher-agent', ['id' => $mission->getAgent()->getId()], [], true);
    }

    /** SPECIFICITE POSTE *********************************************************************************************/

    public function editerSpecificitePosteAction()
    {

        $specificite = new SpecificitePoste();
        $fiche = $this->getFicheMetierService()->getFicheMetier(1);

        /** @var SpecificitePosteForm $form */
        $form = $form = $this->getServiceLocator()->get('FormElementManager')->get(SpecificitePosteForm::class);
        $form->bind($specificite);

        /** @var Request $request */
        $request = $this->getRequest();
        if ($request->isPost()) {
            $data = $request->getPost();
            $form->setData($data);
            if ($form->isValid()) {
                $specificite->setFiche($fiche);
                $this->getFicheMetierService()->createSpecificitePoste($specificite);
            }
        }

        $vm = new ViewModel();
        $vm->setTemplate('application/default/default-form');
        $vm->setVariables([
            'title' => 'Éditer spécificité du poste',
            'form' => $form,
        ]);
        return $vm;
    }
}
 No newline at end of file
+22 −0
Changes for module/Application/src/Application/Entity/Db/FicheMetier.php: 22 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -17,6 +17,9 @@ class FicheMetier
    /** @var Agent */
    private $agent;

    /** @var SpecificitePoste */
    private $specificite;

    public function getId()
    {
        return $this->id;
@@ -76,5 +79,24 @@ class FicheMetier
        return $this;
    }

    /**
     * @return SpecificitePoste
     */
    public function getSpecificite()
    {
        return $this->specificite;
    }

    /**
     * @param SpecificitePoste $specificite
     * @return FicheMetier
     */
    public function setSpecificite($specificite)
    {
        $this->specificite = $specificite;
        return $this;
    }



}
 No newline at end of file
+2 −0
Changes for module/Application/src/Application/Entity/Db/Mapping/Application.Entity.Db.FicheMetier.dcm.xml: 2 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -30,5 +30,7 @@
            <join-column name="agent" referenced-column-name="id" />
        </many-to-one>


        <!--<one-to-one field="specificite" target-entity="Application\Entity\Db\SpecificitePoste" mapped-by="id"/>-->
    </entity>
</doctrine-mapping>
+21 −0
Changes for module/Application/src/Application/Entity/Db/Mapping/Application.Entity.Db.SpecificitePoste.dcm.xml: 21 added lines, 0 removed lines.
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
    <entity name="Application\Entity\Db\SpecificitePoste" table="specificite_poste">

        <id name="id" type="integer" column="id">
            <generator strategy="IDENTITY"/>
        </id>

        <!--<one-to-one field="fiche" target-entity="Application\Entity\Db\FicheMetier" mapped-by="id"/>-->


        <field name="specificite"       type="string" length="2048"     column="specificite"            nullable="true"/>
        <field name="encadrement"       type="string" length="2048"     column="encadrement"            nullable="true"/>
        <field name="relationsInternes" type="string" length="2048"     column="relations_internes"     nullable="true"/>
        <field name="relationsExternes" type="string" length="2048"     column="relations_externes"     nullable="true"/>
        <field name="contraintes"       type="string" length="2048"     column="contraintes"            nullable="true"/>
        <field name="moyens"            type="string" length="2048"     column="moyens"                 nullable="true"/>


    </entity>
</doctrine-mapping>
Loading