Loading module/Application/config/merged/fiche-metier.config.php +53 −1 Changes for module/Application/config/merged/fiche-metier.config.php: 53 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -10,6 +10,10 @@ use Application\Form\Agent\AgentForm; use Application\Form\Agent\AgentFormFactory; use Application\Form\Agent\AgentHydrator; use Application\Form\Agent\AgentHydratorFactory; use Application\Form\Agent\MissionComplementaireForm; use Application\Form\Agent\MissionComplementaireFormFactory; use Application\Form\Agent\MissionComplementaireHydrator; use Application\Form\Agent\MissionComplementaireHydratorFactory; use Application\Form\FicheMetier\FicheMetierCreationForm; use Application\Form\FicheMetier\FicheMetierCreationFormFactory; use Application\Form\FicheMetier\FicheMetierCreationHydrator; Loading Loading @@ -50,6 +54,10 @@ return [ 'afficher', 'afficher-agent', 'saisie-manuelle-agent', 'lister-agents', 'ajouter-mission-complementaire', 'editer-mission-complementaire', 'supprimer-mission-complementaire', ], 'privileges' => [ FicheMetierPrivileges::AFFICHER, Loading Loading @@ -166,7 +174,16 @@ return [ ], ], ], 'agent' => [ 'type' => Literal::class, 'options' => [ 'route' => '/agent', 'defaults' => [ 'controller' => FicheMetierController::class, 'action' => 'lister-agents', ], ], ], 'afficher-agent' => [ 'type' => Segment::class, 'options' => [ Loading @@ -189,6 +206,39 @@ return [ ], 'may_terminate' => true, ], 'ajouter-mission-complementaire' => [ 'type' => Segment::class, 'options' => [ 'route' => '/ajouter-mission-complementaire/:agent', 'defaults' => [ 'controller' => FicheMetierController::class, 'action' => 'ajouter-mission-complementaire', ], ], 'may_terminate' => true, ], 'editer-mission-complementaire' => [ 'type' => Segment::class, 'options' => [ 'route' => '/editer-mission-complementaire/:id', 'defaults' => [ 'controller' => FicheMetierController::class, 'action' => 'editer-mission-complementaire', ], ], 'may_terminate' => true, ], 'supprimer-mission-complementaire' => [ 'type' => Segment::class, 'options' => [ 'route' => '/supprimer-mission-complementaire/:id', 'defaults' => [ 'controller' => FicheMetierController::class, 'action' => 'supprimer-mission-complementaire', ], ], 'may_terminate' => true, ], ], ], 'fiche-metier-type' => [ Loading Loading @@ -308,6 +358,7 @@ return [ MissionsPrincipalesForm::class => MissionsPrincipalesFormFactory::class, AgentForm::class => AgentFormFactory::class, MissionComplementaireForm::class => MissionComplementaireFormFactory::class, ], ], 'hydrators' => [ Loading @@ -318,6 +369,7 @@ return [ FicheMetierCreationHydrator::class => FicheMetierCreationHydratorFactory::class, LibelleHydrator::class => LibelleHydratorFactory::class, AgentHydrator::class => AgentHydratorFactory::class, MissionComplementaireHydrator::class => MissionComplementaireHydratorFactory::class, ] ] Loading module/Application/config/merged/menu.config.php +7 −0 Changes for module/Application/config/merged/menu.config.php: 7 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -72,6 +72,13 @@ return [ 'route' => 'activite', 'roles' => [], //PrivilegeController::getResourceId(__NAMESPACE__ . '\Controller\Administration', 'index'), 'pages' => [ [ 'label' => 'Les agents', 'route' => 'fiche-metier/agent', 'privileges' => FicheMetierPrivileges::AFFICHER, 'dropdown-header' => true, 'icon' => 'fas fa-angle-right' ], [ 'label' => 'Les fiches métiers', 'route' => 'fiche-metier', Loading module/Application/src/Application/Controller/FicheMetier/FicheMetierController.php +79 −0 Changes for module/Application/src/Application/Controller/FicheMetier/FicheMetierController.php: 79 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -4,7 +4,9 @@ namespace Application\Controller\FicheMetier; use Application\Entity\Db\Agent; use Application\Entity\Db\FicheMetier; use Application\Entity\Db\MissionComplementaire; use Application\Form\Agent\AgentForm; use Application\Form\Agent\MissionComplementaireForm; use Application\Form\FicheMetier\FicheMetierCreationForm; use Application\Service\Agent\AgentServiceAwareTrait; use Application\Service\FicheMetier\FicheMetierServiceAwareTrait; Loading Loading @@ -132,4 +134,81 @@ class FicheMetierController extends AbstractActionController 'form' => $form, ]); } public function listerAgentsAction() { $agents = $this->getAgentService()->getAgents(); return new ViewModel([ 'agents' => $agents, ]); } public function ajouterMissionComplementaireAction() { $agentId = $this->params()->fromRoute('agent'); $agent = $this->getAgentService()->getAgent($agentId); $mission = new MissionComplementaire(); /** @var MissionComplementaireForm $form */ $form = $form = $this->getServiceLocator()->get('FormElementManager')->get(MissionComplementaireForm::class); $form->setAttribute('action', $this->url()->fromRoute('fiche-metier/ajouter-mission-complementaire', [], [], true)); $form->bind($mission); /** @var Request $request */ $request = $this->getRequest(); if ($request->isPost()) { $data = $request->getPost(); $form->setData($data); if ($form->isValid()) { $mission->setAgent($agent); $this->getAgentService()->createMissionComplementaire($mission); } } return new ViewModel([ 'title' => 'Ajouter une mission complementaire', 'form' => $form, ]); } public function editerMissionComplementaireAction() { $missionId = $this->params()->fromRoute('id'); $mission = $this->getAgentService()->getMissionComplementaire($missionId); $agent = $mission->getAgent(); /** @var MissionComplementaireForm $form */ $form = $form = $this->getServiceLocator()->get('FormElementManager')->get(MissionComplementaireForm::class); $form->setAttribute('action', $this->url()->fromRoute('fiche-metier/editer-mission-complementaire', ['id' => $mission->getId()], [], true)); $form->bind($mission); /** @var Request $request */ $request = $this->getRequest(); if ($request->isPost()) { $data = $request->getPost(); $form->setData($data); if ($form->isValid()) { $mission->setAgent($agent); $this->getAgentService()->updateMissionComplementaire($mission); } } return new ViewModel([ 'title' => 'Éditer une mission complementaire', 'form' => $form, ]); } public function supprimerMissionComplementaireAction() { $missionId = $this->params()->fromRoute('id'); $mission = $this->getAgentService()->getMissionComplementaire($missionId); $this->getAgentService()->deleteMissionComplementaire($mission); $this->redirect()->toRoute('fiche-metier/afficher-agent', ['id' => $mission->getAgent()->getId()], [], true); } } No newline at end of file module/Application/src/Application/Entity/Db/Agent.php +34 −0 Changes for module/Application/src/Application/Entity/Db/Agent.php: 34 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ namespace Application\Entity\Db; use DateTime; use Doctrine\Common\Collections\ArrayCollection; class Agent { Loading Loading @@ -30,8 +31,15 @@ class Agent { /** @var Corps */ private $corps; /** @var ArrayCollection */ private $missionsComplementaires; public function __construct() { $this->missionsComplementaires = new ArrayCollection(); } /** * @return int */ Loading Loading @@ -202,6 +210,32 @@ class Agent { return $this; } /** * @return ArrayCollection */ public function getMissionsComplementaires() { return $this->missionsComplementaires; } /** * @param MissionComplementaire $mission * @return Agent */ public function addMissionsComplementaires($mission) { $this->missionsComplementaires->add($mission); return $this; } /** * @param MissionComplementaire $mission * @return Agent */ public function removeMissionsComplementaires($mission) { $this->missionsComplementaires->removeElement($mission); return $this; } } No newline at end of file module/Application/src/Application/Entity/Db/Mapping/Application.Entity.Db.Agent.dcm.xml +2 −0 Changes for module/Application/src/Application/Entity/Db/Mapping/Application.Entity.Db.Agent.dcm.xml: 2 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -22,5 +22,7 @@ <many-to-one target-entity="Application\Entity\Db\Corps" field="corps"> <join-column name="corps" referenced-column-name="id" /> </many-to-one> <one-to-many target-entity="Application\Entity\Db\MissionComplementaire" field="missionsComplementaires" mapped-by="agent" /> </entity> </doctrine-mapping> Loading
module/Application/config/merged/fiche-metier.config.php +53 −1 Changes for module/Application/config/merged/fiche-metier.config.php: 53 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -10,6 +10,10 @@ use Application\Form\Agent\AgentForm; use Application\Form\Agent\AgentFormFactory; use Application\Form\Agent\AgentHydrator; use Application\Form\Agent\AgentHydratorFactory; use Application\Form\Agent\MissionComplementaireForm; use Application\Form\Agent\MissionComplementaireFormFactory; use Application\Form\Agent\MissionComplementaireHydrator; use Application\Form\Agent\MissionComplementaireHydratorFactory; use Application\Form\FicheMetier\FicheMetierCreationForm; use Application\Form\FicheMetier\FicheMetierCreationFormFactory; use Application\Form\FicheMetier\FicheMetierCreationHydrator; Loading Loading @@ -50,6 +54,10 @@ return [ 'afficher', 'afficher-agent', 'saisie-manuelle-agent', 'lister-agents', 'ajouter-mission-complementaire', 'editer-mission-complementaire', 'supprimer-mission-complementaire', ], 'privileges' => [ FicheMetierPrivileges::AFFICHER, Loading Loading @@ -166,7 +174,16 @@ return [ ], ], ], 'agent' => [ 'type' => Literal::class, 'options' => [ 'route' => '/agent', 'defaults' => [ 'controller' => FicheMetierController::class, 'action' => 'lister-agents', ], ], ], 'afficher-agent' => [ 'type' => Segment::class, 'options' => [ Loading @@ -189,6 +206,39 @@ return [ ], 'may_terminate' => true, ], 'ajouter-mission-complementaire' => [ 'type' => Segment::class, 'options' => [ 'route' => '/ajouter-mission-complementaire/:agent', 'defaults' => [ 'controller' => FicheMetierController::class, 'action' => 'ajouter-mission-complementaire', ], ], 'may_terminate' => true, ], 'editer-mission-complementaire' => [ 'type' => Segment::class, 'options' => [ 'route' => '/editer-mission-complementaire/:id', 'defaults' => [ 'controller' => FicheMetierController::class, 'action' => 'editer-mission-complementaire', ], ], 'may_terminate' => true, ], 'supprimer-mission-complementaire' => [ 'type' => Segment::class, 'options' => [ 'route' => '/supprimer-mission-complementaire/:id', 'defaults' => [ 'controller' => FicheMetierController::class, 'action' => 'supprimer-mission-complementaire', ], ], 'may_terminate' => true, ], ], ], 'fiche-metier-type' => [ Loading Loading @@ -308,6 +358,7 @@ return [ MissionsPrincipalesForm::class => MissionsPrincipalesFormFactory::class, AgentForm::class => AgentFormFactory::class, MissionComplementaireForm::class => MissionComplementaireFormFactory::class, ], ], 'hydrators' => [ Loading @@ -318,6 +369,7 @@ return [ FicheMetierCreationHydrator::class => FicheMetierCreationHydratorFactory::class, LibelleHydrator::class => LibelleHydratorFactory::class, AgentHydrator::class => AgentHydratorFactory::class, MissionComplementaireHydrator::class => MissionComplementaireHydratorFactory::class, ] ] Loading
module/Application/config/merged/menu.config.php +7 −0 Changes for module/Application/config/merged/menu.config.php: 7 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -72,6 +72,13 @@ return [ 'route' => 'activite', 'roles' => [], //PrivilegeController::getResourceId(__NAMESPACE__ . '\Controller\Administration', 'index'), 'pages' => [ [ 'label' => 'Les agents', 'route' => 'fiche-metier/agent', 'privileges' => FicheMetierPrivileges::AFFICHER, 'dropdown-header' => true, 'icon' => 'fas fa-angle-right' ], [ 'label' => 'Les fiches métiers', 'route' => 'fiche-metier', Loading
module/Application/src/Application/Controller/FicheMetier/FicheMetierController.php +79 −0 Changes for module/Application/src/Application/Controller/FicheMetier/FicheMetierController.php: 79 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -4,7 +4,9 @@ namespace Application\Controller\FicheMetier; use Application\Entity\Db\Agent; use Application\Entity\Db\FicheMetier; use Application\Entity\Db\MissionComplementaire; use Application\Form\Agent\AgentForm; use Application\Form\Agent\MissionComplementaireForm; use Application\Form\FicheMetier\FicheMetierCreationForm; use Application\Service\Agent\AgentServiceAwareTrait; use Application\Service\FicheMetier\FicheMetierServiceAwareTrait; Loading Loading @@ -132,4 +134,81 @@ class FicheMetierController extends AbstractActionController 'form' => $form, ]); } public function listerAgentsAction() { $agents = $this->getAgentService()->getAgents(); return new ViewModel([ 'agents' => $agents, ]); } public function ajouterMissionComplementaireAction() { $agentId = $this->params()->fromRoute('agent'); $agent = $this->getAgentService()->getAgent($agentId); $mission = new MissionComplementaire(); /** @var MissionComplementaireForm $form */ $form = $form = $this->getServiceLocator()->get('FormElementManager')->get(MissionComplementaireForm::class); $form->setAttribute('action', $this->url()->fromRoute('fiche-metier/ajouter-mission-complementaire', [], [], true)); $form->bind($mission); /** @var Request $request */ $request = $this->getRequest(); if ($request->isPost()) { $data = $request->getPost(); $form->setData($data); if ($form->isValid()) { $mission->setAgent($agent); $this->getAgentService()->createMissionComplementaire($mission); } } return new ViewModel([ 'title' => 'Ajouter une mission complementaire', 'form' => $form, ]); } public function editerMissionComplementaireAction() { $missionId = $this->params()->fromRoute('id'); $mission = $this->getAgentService()->getMissionComplementaire($missionId); $agent = $mission->getAgent(); /** @var MissionComplementaireForm $form */ $form = $form = $this->getServiceLocator()->get('FormElementManager')->get(MissionComplementaireForm::class); $form->setAttribute('action', $this->url()->fromRoute('fiche-metier/editer-mission-complementaire', ['id' => $mission->getId()], [], true)); $form->bind($mission); /** @var Request $request */ $request = $this->getRequest(); if ($request->isPost()) { $data = $request->getPost(); $form->setData($data); if ($form->isValid()) { $mission->setAgent($agent); $this->getAgentService()->updateMissionComplementaire($mission); } } return new ViewModel([ 'title' => 'Éditer une mission complementaire', 'form' => $form, ]); } public function supprimerMissionComplementaireAction() { $missionId = $this->params()->fromRoute('id'); $mission = $this->getAgentService()->getMissionComplementaire($missionId); $this->getAgentService()->deleteMissionComplementaire($mission); $this->redirect()->toRoute('fiche-metier/afficher-agent', ['id' => $mission->getAgent()->getId()], [], true); } } No newline at end of file
module/Application/src/Application/Entity/Db/Agent.php +34 −0 Changes for module/Application/src/Application/Entity/Db/Agent.php: 34 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ namespace Application\Entity\Db; use DateTime; use Doctrine\Common\Collections\ArrayCollection; class Agent { Loading Loading @@ -30,8 +31,15 @@ class Agent { /** @var Corps */ private $corps; /** @var ArrayCollection */ private $missionsComplementaires; public function __construct() { $this->missionsComplementaires = new ArrayCollection(); } /** * @return int */ Loading Loading @@ -202,6 +210,32 @@ class Agent { return $this; } /** * @return ArrayCollection */ public function getMissionsComplementaires() { return $this->missionsComplementaires; } /** * @param MissionComplementaire $mission * @return Agent */ public function addMissionsComplementaires($mission) { $this->missionsComplementaires->add($mission); return $this; } /** * @param MissionComplementaire $mission * @return Agent */ public function removeMissionsComplementaires($mission) { $this->missionsComplementaires->removeElement($mission); return $this; } } No newline at end of file
module/Application/src/Application/Entity/Db/Mapping/Application.Entity.Db.Agent.dcm.xml +2 −0 Changes for module/Application/src/Application/Entity/Db/Mapping/Application.Entity.Db.Agent.dcm.xml: 2 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -22,5 +22,7 @@ <many-to-one target-entity="Application\Entity\Db\Corps" field="corps"> <join-column name="corps" referenced-column-name="id" /> </many-to-one> <one-to-many target-entity="Application\Entity\Db\MissionComplementaire" field="missionsComplementaires" mapped-by="agent" /> </entity> </doctrine-mapping>