Loading module/Formation/Module.php +6 −3 Original line number Diff line number Diff line Loading @@ -23,10 +23,13 @@ class Module $sharedEvents->attach(AbstractActionController::class, 'dispatch', function($e) { /** @var $e MvcEvent */ $controller = $e->getTarget(); $type = $controller->getRequest()->getParams()['controller']; if ($type !== 'UnicaenDbImport\Controller\ConsoleController') { $hostname = $controller->getRequest()->getUri()->getHost(); if (preg_match('/mes-formations.*/', $hostname)) { $controller->layout('layout/layout-formation'); } } }, 100); } Loading module/Formation/src/Formation/Controller/AgentController.php +32 −1 Original line number Diff line number Diff line Loading @@ -3,18 +3,30 @@ namespace Formation\Controller; use Application\Service\Agent\AgentServiceAwareTrait; use Application\Service\AgentAffectation\AgentAffectationServiceAwareTrait; use Application\Service\AgentGrade\AgentGradeServiceAwareTrait; use Application\Service\AgentStatut\AgentStatutServiceAwareTrait; use Formation\Service\FormationInstanceInscrit\FormationInstanceInscritServiceAwareTrait; use Laminas\Mvc\Controller\AbstractActionController; use Laminas\View\Model\ViewModel; use UnicaenUtilisateur\Service\User\UserServiceAwareTrait; class AgentController extends AbstractActionController { use AgentServiceAwareTrait; use AgentAffectationServiceAwareTrait; use AgentGradeServiceAwareTrait; use AgentStatutServiceAwareTrait; use FormationInstanceInscritServiceAwareTrait; use UserServiceAwareTrait; public function indexAction() : ViewModel { $params = $this->params()->fromQuery(); $agents = []; if ($params !== null AND !empty($params)) { $agents = $this->getAgentService()->getAgentsWithFiltre($params); } return new ViewModel([ 'agents' => $agents, Loading @@ -25,8 +37,27 @@ class AgentController extends AbstractActionController { public function afficherAction() : ViewModel { $agent = $this->getAgentService()->getRequestedAgent($this); $agentAffectations = $this->getAgentAffectationService()->getAgentAffectationsByAgent($agent); $agentGrades = $this->getAgentGradeService()->getAgentGradesByAgent($agent); $agentStatuts = $this->getAgentStatutService()->getAgentStatutsByAgent($agent); $formations = $this->getFormationInstanceInscritService()->getFormationsBySuivies($agent); $inscriptions = $this->getFormationInstanceInscritService()->getFormationsByInscrit($agent); $stages = []; // $demandes = $this->getDemandeExterneService()->getDemandesExternesByAgent($agent); // $demandes = array_filter($demandes, function (DemandeExterne $d) { return $d->estNonHistorise() AND $d->getEtat()->getCode() !== DemandeExterneEtats::ETAT_REJETEE AND $d->getEtat()->getCode() !== DemandeExterneEtats::ETAT_TERMINEE;}); // $demandesValidees = array_filter($demandes, function (DemandeExterne $d) { return $d->getEtat()->getCode() !== DemandeExterneEtats::ETAT_CREATION_EN_COURS; }); return new ViewModel([ 'agent' => $agent, 'agentAffectations' => $agentAffectations, 'agentGrades' => $agentGrades, 'agentStatuts' => $agentStatuts, 'inscriptions' => $inscriptions, 'stages' => $stages, 'formations' => $formations, ]); } Loading module/Formation/src/Formation/Controller/AgentControllerFactory.php +17 −0 Original line number Diff line number Diff line Loading @@ -3,6 +3,10 @@ namespace Formation\Controller; use Application\Service\Agent\AgentService; use Application\Service\AgentAffectation\AgentAffectationService; use Application\Service\AgentGrade\AgentGradeService; use Application\Service\AgentStatut\AgentStatutService; use Formation\Service\FormationInstanceInscrit\FormationInstanceInscritService; use Psr\Container\ContainerExceptionInterface; use Psr\Container\ContainerInterface; use Psr\Container\NotFoundExceptionInterface; Loading @@ -18,14 +22,27 @@ class AgentControllerFactory { { /** * @var AgentService $agentService * @var AgentAffectationService $affectationService * @var AgentGradeService $gradeService * @var AgentStatutService $statutService * @var FormationInstanceInscritService $inscriptionService * @var UserService $userService */ $agentService = $container->get(AgentService::class); $affectationService = $container->get(AgentAffectationService::class); $gradeService = $container->get(AgentGradeService::class); $statutService = $container->get(AgentStatutService::class); $inscriptionService = $container->get(FormationInstanceInscritService::class); $userService = $container->get(UserService::class); $controller = new AgentController(); $controller->setAgentService($agentService); $controller->setAgentAffectationService($affectationService); $controller->setAgentGradeService($gradeService); $controller->setAgentStatutService($statutService); $controller->setFormationInstanceInscritService($inscriptionService); $controller->setUserService($userService); return $controller; } } No newline at end of file module/Formation/view/formation/agent/afficher.phtml +130 −2 Original line number Diff line number Diff line Loading @@ -3,11 +3,30 @@ /** * @see \Formation\Controller\AgentController::afficherAction() * @var Agent $agent * @var AgentAffectation[] $agentAffectations * @var AgentGrade[] $agentGrades * @var AgentStatut[] $agentStatuts * @var Formation[] $formations * @var Formation[] $inscriptions * @var DemandeExterne[] $stages */ use Application\Entity\Db\Agent; use Application\Entity\Db\AgentAffectation; use Application\Entity\Db\AgentGrade; use Application\Entity\Db\AgentStatut; use Formation\Entity\Db\DemandeExterne; use Formation\Entity\Db\Formation; $this->headTitle("Afficher l'agent " . $agent->getDenomination()); $statuts = []; foreach ($agentStatuts as $agentStatut) { if ($agentStatut->isTitulaire()) $statuts['Titulaire'] = 'Titulaire'; if ($agentStatut->isCdi()) $statuts['C.D.I'] = 'C.D.I.'; if ($agentStatut->isCdd()) $statuts['C.D.D'] = 'C.D.D.'; if ($agentStatut->isAdministratif()) $statuts['Administratif'] = 'Administratif'; } ?> <h1 class="page-header"> Loading @@ -20,8 +39,117 @@ $this->headTitle("Afficher l'agent " . $agent->getDenomination()); <h2> Information sur l'agent </h2> <div class="row"> <div class="col-md-6">INFO</div> <div class="col-md-6">AFFECTATION</div> <div class="col-md-6"> <dl class="row"> <dt class="col-md-4"> Dénomination </dt> <dd class="col-md-8"> <?php echo $agent->getDenomination(); ?> </dd> <dt class="col-md-4"> Affectation·s </dt> <dd class="col-m"> <ul> <?php foreach ($agentAffectations as $agentAffectation) : ?> <li> <?php $structure = $agentAffectation->getStructure(); $niveau2 = $structure?$structure->getNiv2():null; ?> <?php if ($structure) : ?> <?php echo $structure->getLibelleLong(); ?> <?php if ($niveau2 AND $niveau2 !== $structure) : ?> <br/> Rattaché·e à <?php echo $niveau2->getLibelleLong(); ?> <?php endif; ?> <?php endif; ?> <?php if ($agentAffectation->isPrincipale()) : ?> <br/> <em>Affectation principale</em> <?php endif; ?> </li> <?php endforeach; ?> </ul> </dd> </dl> </div> <div class="col-md-6"> <dl class="row"> <dt class="col-md-4"> Statut·s </dt> <dd class="col-md-8"> <ul> <?php foreach ($statuts as $statut) : ?> <li> <?php echo $statut; ?> </li> <?php endforeach; ?> </ul> </dd> <dt class="col-md-4"> Informations supplémentaires </dt> <dd class="col-md-8"> <ul> <?php foreach ($agentGrades as $agentGrade) : ?> <?php $grade = $agentGrade->getGrade(); ?> <?php $corps = $agentGrade->getCorps(); ?> <?php $correspondance = $agentGrade->getBap(); ?> <li> <?php echo ($grade)?$grade->getLibelleLong():"Grade non renseigné"; ?> <br/> <?php echo ($corps)?$corps->getLibelleLong():"Corps non renseigné"; ?> <br/> <?php echo ($correspondance)?$correspondance->getLibelleLong():"Correspondance non renseignée"; ?> </li> <?php endforeach; ?> </ul> </dd> </dl> </div> </div> <div role="tabpanel"> <ul class="nav nav-tabs" role="tablist"> <li class="nav-item"> <a href="#formations" class="nav-link" aria-controls="formations" role="tab" data-toggle="tabz"> Formations <br> suivies </a> </li> <li class="nav-item"> <a href="#inscriptions-internes" class="nav-link" aria-controls="inscriptions-internes" role="tab" data-toggle="tabz"> Inscriptions en cours <br> Plan de formation </a> </li> <li class="nav-item"> <a href="#inscriptions-externes" class="nav-link" aria-controls="inscriptions-externes" role="tab" data-toggle="tabz"> Inscriptions en cours <br> Stage externe </a> </li> </ul> </div> <div class="tab-content"> <div id="formations" class="tab-pane " role="tabpanel"> <?php echo $this->partial('partial/formations', ['agent' => $agent, 'formations' => $formations], [], true); ?> </div> <div id="inscriptions-internes" class="tab-pane " role="tabpanel"> <?php echo $this->partial('partial/inscriptions', ['agent' => $agent, 'inscriptions' => $inscriptions], [], true); ?> </div> <div id="inscriptions-externes" class="tab-pane " role="tabpanel"> <?php echo $this->partial('partial/stages', ['agent' => $agent, 'stages' => $stages], [], true); ?> </div> </div> <script> $(function() { let hash = $(location).attr('hash'); let name = hash.substr(1); if (name === undefined || name === "") name = "formations"; $('a[aria-controls=' + name + ']').tab('show'); $('.nav-tabs a').click(function (e) { // No e.preventDefault() here $(this).tab('show'); }); }); $(function() { $("body").on("modification", function (event) { event.div.modal('hide'); window.location.reload(); }); }); </script> module/Formation/view/formation/agent/partial/formations.phtml 0 → 100644 +26 −0 Original line number Diff line number Diff line <?php /** * @var Agent $agent * @var Formation[] $formations */ use Application\Entity\Db\Agent; use Formation\Entity\Db\Formation; use Formation\Provider\Privilege\FormationinstancedocumentPrivileges; $canHistorique = $this->isAllowed(FormationinstancedocumentPrivileges::getResourceId(FormationinstancedocumentPrivileges::FORMATIONINSTANCEDOCUMENT_HISTORIQUE)); ?> <?php if ($canHistorique) : ?> <?php /** @see \Formation\Controller\FormationInstanceDocumentController::genererHistoriqueAction() */ ?> <a href="<?php echo $this->url('formation-instance/generer-historique', ['agent' => $agent->getId()], [], true); ?>" class="btn btn-primary" target="_blank" > <span class="icon icon-pdf"></span> Générer l'historique de formation </a> <?php endif; ?> No newline at end of file Loading
module/Formation/Module.php +6 −3 Original line number Diff line number Diff line Loading @@ -23,10 +23,13 @@ class Module $sharedEvents->attach(AbstractActionController::class, 'dispatch', function($e) { /** @var $e MvcEvent */ $controller = $e->getTarget(); $type = $controller->getRequest()->getParams()['controller']; if ($type !== 'UnicaenDbImport\Controller\ConsoleController') { $hostname = $controller->getRequest()->getUri()->getHost(); if (preg_match('/mes-formations.*/', $hostname)) { $controller->layout('layout/layout-formation'); } } }, 100); } Loading
module/Formation/src/Formation/Controller/AgentController.php +32 −1 Original line number Diff line number Diff line Loading @@ -3,18 +3,30 @@ namespace Formation\Controller; use Application\Service\Agent\AgentServiceAwareTrait; use Application\Service\AgentAffectation\AgentAffectationServiceAwareTrait; use Application\Service\AgentGrade\AgentGradeServiceAwareTrait; use Application\Service\AgentStatut\AgentStatutServiceAwareTrait; use Formation\Service\FormationInstanceInscrit\FormationInstanceInscritServiceAwareTrait; use Laminas\Mvc\Controller\AbstractActionController; use Laminas\View\Model\ViewModel; use UnicaenUtilisateur\Service\User\UserServiceAwareTrait; class AgentController extends AbstractActionController { use AgentServiceAwareTrait; use AgentAffectationServiceAwareTrait; use AgentGradeServiceAwareTrait; use AgentStatutServiceAwareTrait; use FormationInstanceInscritServiceAwareTrait; use UserServiceAwareTrait; public function indexAction() : ViewModel { $params = $this->params()->fromQuery(); $agents = []; if ($params !== null AND !empty($params)) { $agents = $this->getAgentService()->getAgentsWithFiltre($params); } return new ViewModel([ 'agents' => $agents, Loading @@ -25,8 +37,27 @@ class AgentController extends AbstractActionController { public function afficherAction() : ViewModel { $agent = $this->getAgentService()->getRequestedAgent($this); $agentAffectations = $this->getAgentAffectationService()->getAgentAffectationsByAgent($agent); $agentGrades = $this->getAgentGradeService()->getAgentGradesByAgent($agent); $agentStatuts = $this->getAgentStatutService()->getAgentStatutsByAgent($agent); $formations = $this->getFormationInstanceInscritService()->getFormationsBySuivies($agent); $inscriptions = $this->getFormationInstanceInscritService()->getFormationsByInscrit($agent); $stages = []; // $demandes = $this->getDemandeExterneService()->getDemandesExternesByAgent($agent); // $demandes = array_filter($demandes, function (DemandeExterne $d) { return $d->estNonHistorise() AND $d->getEtat()->getCode() !== DemandeExterneEtats::ETAT_REJETEE AND $d->getEtat()->getCode() !== DemandeExterneEtats::ETAT_TERMINEE;}); // $demandesValidees = array_filter($demandes, function (DemandeExterne $d) { return $d->getEtat()->getCode() !== DemandeExterneEtats::ETAT_CREATION_EN_COURS; }); return new ViewModel([ 'agent' => $agent, 'agentAffectations' => $agentAffectations, 'agentGrades' => $agentGrades, 'agentStatuts' => $agentStatuts, 'inscriptions' => $inscriptions, 'stages' => $stages, 'formations' => $formations, ]); } Loading
module/Formation/src/Formation/Controller/AgentControllerFactory.php +17 −0 Original line number Diff line number Diff line Loading @@ -3,6 +3,10 @@ namespace Formation\Controller; use Application\Service\Agent\AgentService; use Application\Service\AgentAffectation\AgentAffectationService; use Application\Service\AgentGrade\AgentGradeService; use Application\Service\AgentStatut\AgentStatutService; use Formation\Service\FormationInstanceInscrit\FormationInstanceInscritService; use Psr\Container\ContainerExceptionInterface; use Psr\Container\ContainerInterface; use Psr\Container\NotFoundExceptionInterface; Loading @@ -18,14 +22,27 @@ class AgentControllerFactory { { /** * @var AgentService $agentService * @var AgentAffectationService $affectationService * @var AgentGradeService $gradeService * @var AgentStatutService $statutService * @var FormationInstanceInscritService $inscriptionService * @var UserService $userService */ $agentService = $container->get(AgentService::class); $affectationService = $container->get(AgentAffectationService::class); $gradeService = $container->get(AgentGradeService::class); $statutService = $container->get(AgentStatutService::class); $inscriptionService = $container->get(FormationInstanceInscritService::class); $userService = $container->get(UserService::class); $controller = new AgentController(); $controller->setAgentService($agentService); $controller->setAgentAffectationService($affectationService); $controller->setAgentGradeService($gradeService); $controller->setAgentStatutService($statutService); $controller->setFormationInstanceInscritService($inscriptionService); $controller->setUserService($userService); return $controller; } } No newline at end of file
module/Formation/view/formation/agent/afficher.phtml +130 −2 Original line number Diff line number Diff line Loading @@ -3,11 +3,30 @@ /** * @see \Formation\Controller\AgentController::afficherAction() * @var Agent $agent * @var AgentAffectation[] $agentAffectations * @var AgentGrade[] $agentGrades * @var AgentStatut[] $agentStatuts * @var Formation[] $formations * @var Formation[] $inscriptions * @var DemandeExterne[] $stages */ use Application\Entity\Db\Agent; use Application\Entity\Db\AgentAffectation; use Application\Entity\Db\AgentGrade; use Application\Entity\Db\AgentStatut; use Formation\Entity\Db\DemandeExterne; use Formation\Entity\Db\Formation; $this->headTitle("Afficher l'agent " . $agent->getDenomination()); $statuts = []; foreach ($agentStatuts as $agentStatut) { if ($agentStatut->isTitulaire()) $statuts['Titulaire'] = 'Titulaire'; if ($agentStatut->isCdi()) $statuts['C.D.I'] = 'C.D.I.'; if ($agentStatut->isCdd()) $statuts['C.D.D'] = 'C.D.D.'; if ($agentStatut->isAdministratif()) $statuts['Administratif'] = 'Administratif'; } ?> <h1 class="page-header"> Loading @@ -20,8 +39,117 @@ $this->headTitle("Afficher l'agent " . $agent->getDenomination()); <h2> Information sur l'agent </h2> <div class="row"> <div class="col-md-6">INFO</div> <div class="col-md-6">AFFECTATION</div> <div class="col-md-6"> <dl class="row"> <dt class="col-md-4"> Dénomination </dt> <dd class="col-md-8"> <?php echo $agent->getDenomination(); ?> </dd> <dt class="col-md-4"> Affectation·s </dt> <dd class="col-m"> <ul> <?php foreach ($agentAffectations as $agentAffectation) : ?> <li> <?php $structure = $agentAffectation->getStructure(); $niveau2 = $structure?$structure->getNiv2():null; ?> <?php if ($structure) : ?> <?php echo $structure->getLibelleLong(); ?> <?php if ($niveau2 AND $niveau2 !== $structure) : ?> <br/> Rattaché·e à <?php echo $niveau2->getLibelleLong(); ?> <?php endif; ?> <?php endif; ?> <?php if ($agentAffectation->isPrincipale()) : ?> <br/> <em>Affectation principale</em> <?php endif; ?> </li> <?php endforeach; ?> </ul> </dd> </dl> </div> <div class="col-md-6"> <dl class="row"> <dt class="col-md-4"> Statut·s </dt> <dd class="col-md-8"> <ul> <?php foreach ($statuts as $statut) : ?> <li> <?php echo $statut; ?> </li> <?php endforeach; ?> </ul> </dd> <dt class="col-md-4"> Informations supplémentaires </dt> <dd class="col-md-8"> <ul> <?php foreach ($agentGrades as $agentGrade) : ?> <?php $grade = $agentGrade->getGrade(); ?> <?php $corps = $agentGrade->getCorps(); ?> <?php $correspondance = $agentGrade->getBap(); ?> <li> <?php echo ($grade)?$grade->getLibelleLong():"Grade non renseigné"; ?> <br/> <?php echo ($corps)?$corps->getLibelleLong():"Corps non renseigné"; ?> <br/> <?php echo ($correspondance)?$correspondance->getLibelleLong():"Correspondance non renseignée"; ?> </li> <?php endforeach; ?> </ul> </dd> </dl> </div> </div> <div role="tabpanel"> <ul class="nav nav-tabs" role="tablist"> <li class="nav-item"> <a href="#formations" class="nav-link" aria-controls="formations" role="tab" data-toggle="tabz"> Formations <br> suivies </a> </li> <li class="nav-item"> <a href="#inscriptions-internes" class="nav-link" aria-controls="inscriptions-internes" role="tab" data-toggle="tabz"> Inscriptions en cours <br> Plan de formation </a> </li> <li class="nav-item"> <a href="#inscriptions-externes" class="nav-link" aria-controls="inscriptions-externes" role="tab" data-toggle="tabz"> Inscriptions en cours <br> Stage externe </a> </li> </ul> </div> <div class="tab-content"> <div id="formations" class="tab-pane " role="tabpanel"> <?php echo $this->partial('partial/formations', ['agent' => $agent, 'formations' => $formations], [], true); ?> </div> <div id="inscriptions-internes" class="tab-pane " role="tabpanel"> <?php echo $this->partial('partial/inscriptions', ['agent' => $agent, 'inscriptions' => $inscriptions], [], true); ?> </div> <div id="inscriptions-externes" class="tab-pane " role="tabpanel"> <?php echo $this->partial('partial/stages', ['agent' => $agent, 'stages' => $stages], [], true); ?> </div> </div> <script> $(function() { let hash = $(location).attr('hash'); let name = hash.substr(1); if (name === undefined || name === "") name = "formations"; $('a[aria-controls=' + name + ']').tab('show'); $('.nav-tabs a').click(function (e) { // No e.preventDefault() here $(this).tab('show'); }); }); $(function() { $("body").on("modification", function (event) { event.div.modal('hide'); window.location.reload(); }); }); </script>
module/Formation/view/formation/agent/partial/formations.phtml 0 → 100644 +26 −0 Original line number Diff line number Diff line <?php /** * @var Agent $agent * @var Formation[] $formations */ use Application\Entity\Db\Agent; use Formation\Entity\Db\Formation; use Formation\Provider\Privilege\FormationinstancedocumentPrivileges; $canHistorique = $this->isAllowed(FormationinstancedocumentPrivileges::getResourceId(FormationinstancedocumentPrivileges::FORMATIONINSTANCEDOCUMENT_HISTORIQUE)); ?> <?php if ($canHistorique) : ?> <?php /** @see \Formation\Controller\FormationInstanceDocumentController::genererHistoriqueAction() */ ?> <a href="<?php echo $this->url('formation-instance/generer-historique', ['agent' => $agent->getId()], [], true); ?>" class="btn btn-primary" target="_blank" > <span class="icon icon-pdf"></span> Générer l'historique de formation </a> <?php endif; ?> No newline at end of file