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

ajout des applications dans la fiche metier type

parent 9feaebd8
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -26,6 +26,10 @@ use Application\Form\FicheMetier\SpecificitePosteForm;
use Application\Form\FicheMetier\SpecificitePosteFormFactory;
use Application\Form\FicheMetierType\ActiviteExistanteForm;
use Application\Form\FicheMetierType\ActiviteExistanteFormFactory;
use Application\Form\FicheMetierType\ApplicationsForm;
use Application\Form\FicheMetierType\ApplicationsFormFactory;
use Application\Form\FicheMetierType\ApplicationsHydrator;
use Application\Form\FicheMetierType\ApplicationsHydratorFactory;
use Application\Form\FicheMetierType\FormationBaseForm;
use Application\Form\FicheMetierType\FormationBaseFormFactory;
use Application\Form\FicheMetierType\FormationBaseHydrator;
@@ -114,6 +118,7 @@ return [
                        'modifier-connaissances',
                        'modifier-operationnelle',
                        'modifier-comportementale',
                        'modifier-application',
                    ],
                    'privileges' => [
                        FicheMetierPrivileges::AFFICHER,
@@ -354,6 +359,17 @@ return [
                        ],
                        'may_terminate' => true,
                    ],
                    'modifier-application' => [
                        'type'  => Segment::class,
                        'options' => [
                            'route'    => '/modifier-application/:id',
                            'defaults' => [
                                'controller' => FicheMetierTypeController::class,
                                'action'     => 'modifier-application',
                            ],
                        ],
                        'may_terminate' => true,
                    ],
                ],
            ],
        ],
@@ -388,6 +404,7 @@ return [
            FormationBaseForm::class => FormationBaseFormFactory::class,
            FormationOperationnelleForm::class => FormationOperationnelleFormFactory::class,
            FormationComportementaleForm::class => FormationComportementaleFormFactory::class,
            ApplicationsForm::class => ApplicationsFormFactory::class,
        ],
    ],
    'hydrators' => [
@@ -395,6 +412,7 @@ return [
            FormationBaseHydrator::class => FormationBaseHydrator::class,
            FormationOperationnelleHydrator::class => FormationOperationnelleHydrator::class,
            FormationComportementaleHydrator::class => FormationComportementaleHydrator::class,

        ],
        'factories' => [
            FicheMetierCreationHydrator::class => FicheMetierCreationHydratorFactory::class,
@@ -402,6 +420,7 @@ return [
            AssocierMetierTypeHydrator::class => AssocierMetierTypeHydratorFactory::class,
            AssocierAgentHydrator::class => AssocierAgentHydratorFactory::class,
            AssocierPosteHydrator::class => AssocierPosteHydratorFactory::class,
            ApplicationsHydrator::class => ApplicationsHydratorFactory::class,
        ]
    ],
    'view_helpers' => [
+29 −0
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@ namespace Application\Controller\FicheMetier;
use Application\Entity\Db\Activite;
use Application\Form\Activite\ActiviteForm;
use Application\Form\FicheMetierType\ActiviteExistanteForm;
use Application\Form\FicheMetierType\ApplicationsForm;
use Application\Form\FicheMetierType\FormationBaseForm;
use Application\Form\FicheMetierType\FormationComportementaleForm;
use Application\Form\FicheMetierType\FormationOperationnelleForm;
@@ -276,4 +277,32 @@ class FicheMetierTypeController extends AbstractActionController{
            'form' => $form,
        ]);
    }

    public function modifierApplicationAction() {

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

        /** @var ApplicationsForm $form */
        $form = $this->getServiceLocator()->get('FormElementManager')->get(ApplicationsForm::class);
        $form->setAttribute('action', $this->url()->fromRoute('fiche-metier-type/modifier-application', ['id' => $fiche->getId()], [], true));
        $form->bind($fiche);

        /** @var Request $request */
        $request = $this->getRequest();
        if ($request->isPost()) {
            $data = $request->getPost();
            $form->setData($data);
            if ($form->isValid()) {
                $this->getFicheMetierService()->updateFicheMetierType($fiche);
//                $this->redirect()->toRoute('fiche-metier-type/afficher', ['id' => $fiche->getId()]);
            }
        }

        return new ViewModel([
            'type' => 'comportementale',
            'title' => 'Modification des compétences comportementales',
            'form' => $form,
        ]);
    }
}
 No newline at end of file
+2 −0
Original line number Diff line number Diff line
@@ -2,6 +2,8 @@

namespace Application\Entity\Db;

use Doctrine\Common\Collections\ArrayCollection;

class Application {

    /** @var integer */
+54 −0
Original line number Diff line number Diff line
@@ -26,6 +26,17 @@ class FicheMetierType {
    /** @var string */
    private $competencesComportementalesFormation;

    /** @var ArrayCollection */
    private $applications;
    /** @var string */
    private $applicationsFormation;

    public function __construct()
    {
        $this->applications = new ArrayCollection();
    }


    /**
     * @return int
     */
@@ -178,6 +189,49 @@ class FicheMetierType {
        return $this;
    }

    /**
     * @return ArrayCollection
     */
    public function getApplications()
    {
        return $this->applications;
    }

    /**
     * @param Application $application
     * @return FicheMetierType
     */
    public function addApplication($application)
    {
        $this->applications->add($application);
        return $this;
    }

    /**
     * @param Application $application
     * @return FicheMetierType
     */
    public function removeApplication($application)
    {
        $this->applications->removeElement($application);
        return $this;
    }

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

    /**
     * @param string $formation
     * @return FicheMetierType
     */
    public function setApplicationsFormation($formation)
    {
        $this->applicationsFormation = $formation;
        return $this;
    }
}
 No newline at end of file
+12 −2
Original line number Diff line number Diff line
@@ -21,8 +21,18 @@
        <field name="competencesComportementales"             type="string" length="1024"     column="competences_comportementales"                         nullable="true"/>
        <field name="competencesComportementalesFormation"    type="string" length="1024"     column="competences_comportementales_formation"               nullable="true"/>



        <field name="applicationsFormation"                   type="string" length="1024"     column="applications_formation"               nullable="true"/>

        <many-to-many field="applications" target-entity="Application\Entity\Db\Application">
            <join-table name="fiche_metier_type_application">
                <join-columns>
                    <join-column name="fiche" referenced-column-name="id" />
                </join-columns>
                <inverse-join-columns>
                    <join-column name="application" referenced-column-name="id" />
                </inverse-join-columns>
            </join-table>
        </many-to-many>

    </entity>
</doctrine-mapping>
Loading