Loading module/Formation/config/merged/formation-instance-inscrit.config.php +58 −0 Changes for module/Formation/config/merged/formation-instance-inscrit.config.php: 58 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -2,12 +2,14 @@ namespace Formation; use Application\Controller\IndexController; use Formation\Controller\FormationInstanceInscritController; use Formation\Controller\FormationInstanceInscritControllerFactory; use Formation\Provider\Privilege\FormationinstanceinscritPrivileges; use Formation\Service\FormationInstanceInscrit\FormationInstanceInscritService; use Formation\Service\FormationInstanceInscrit\FormationInstanceInscritServiceFactory; use UnicaenPrivilege\Guard\PrivilegeController; use Zend\Router\Http\Literal; use Zend\Router\Http\Segment; return [ Loading @@ -28,14 +30,70 @@ return [ FormationinstanceinscritPrivileges::FORMATIONINSTANCEINSCRIT_MODIFIER, ], ], [ 'controller' => FormationInstanceInscritController::class, 'action' => [ 'liste-formations-instances', 'inscription', 'desinscription', ], 'roles' => [ 'Agent', ], ], ], ], ], 'navigation' => [ 'default' => [ 'home' => [ 'pages' => [ 'formations' => [ 'order' => 1000, 'label' => 'Formations', 'title' => "Gestion des actions de formations et des inscriptions à celles-ci", 'route' => 'liste-formations-instances', 'resource' => PrivilegeController::getResourceId(FormationInstanceInscritController::class, 'liste-formations-instances'), ], ], ], ], ], 'router' => [ 'routes' => [ 'liste-formations-instances' => [ 'type' => Literal::class, 'options' => [ 'route' => '/liste-formations-instances', 'defaults' => [ 'controller' => FormationInstanceInscritController::class, 'action' => 'liste-formations-instances', ], ], ], 'formation-instance' => [ 'child_routes' => [ 'inscription' => [ 'type' => Segment::class, 'options' => [ 'route' => '/inscription/:formation-instance/:agent', 'defaults' => [ 'controller' => FormationInstanceInscritController::class, 'action' => 'inscription', ], ], ], 'desinscription' => [ 'type' => Segment::class, 'options' => [ 'route' => '/desinscription/:inscrit', 'defaults' => [ 'controller' => FormationInstanceInscritController::class, 'action' => 'desinscription', ], ], ], 'ajouter-agent' => [ 'type' => Segment::class, 'options' => [ Loading module/Formation/config/merged/formation-instance.config.php +11 −0 Changes for module/Formation/config/merged/formation-instance.config.php: 11 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -86,6 +86,7 @@ return [ 'action' => [ 'convoquer', 'questionner', 'formation-console', ], 'roles' => [], ], Loading Loading @@ -223,6 +224,16 @@ return [ ], ], ], 'formation-console' => [ 'type' => Simple::class, 'options' => [ 'route' => 'formation-console', 'defaults' => [ 'controller' => FormationInstanceController::class, 'action' => 'formation-console' ], ], ], ], ], ], Loading module/Formation/src/Formation/Controller/FormationInstanceController.php +15 −2 Changes for module/Formation/src/Formation/Controller/FormationInstanceController.php: 15 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ use Autoform\Service\Formulaire\FormulaireInstanceServiceAwareTrait; use DateInterval; use DateTime; use Formation\Entity\Db\FormationInstance; use Formation\Entity\Db\FormationInstanceFormateur; use Formation\Form\FormationInstance\FormationInstanceFormAwareTrait; use Formation\Service\Formation\FormationServiceAwareTrait; use Formation\Service\FormationInstance\FormationInstanceServiceAwareTrait; Loading Loading @@ -168,8 +169,12 @@ class FormationInstanceController extends AbstractActionController if ($instance->getEtat()->getCode() === FormationInstance::ETAT_INSCRIPTION_OUVERTE) { $instance->setEtat($this->getEtatService()->getEtatByCode(FormationInstance::ETAT_INSCRIPTION_FERMEE)); $this->getFormationInstanceService()->update($instance); $this->getMailingService()->sendMailType("FORMATION_LISTE_PRINCIPALE", ['formation-instance' => $instance, 'mailing' => 'ZZZunicaen-biats@unicaen.fr']); $this->getMailingService()->sendMailType("FORMATION_LISTE_SECONDAIRE", ['formation-instance' => $instance, 'mailing' => 'ZZZunicaen-biats@unicaen.fr']); foreach ($instance->getListePrincipale() as $inscrit) { $this->getMailingService()->sendMailType("FORMATION_LISTE_PRINCIPALE", ['formation-instance' => $instance, 'mailing' => $inscrit->getAgent()->getEmail()]); } foreach ($instance->getListeComplementaire() as $inscrit) { $this->getMailingService()->sendMailType("FORMATION_LISTE_SECONDAIRE", ['formation-instance' => $instance, 'mailing' => $inscrit->getAgent()->getEmail()]); } } return $this->redirect()->toRoute('formation-instance/afficher', ['formation-instance' => $instance->getId()], [], true); Loading @@ -187,6 +192,9 @@ class FormationInstanceController extends AbstractActionController $this->getMailingService()->sendMailType("FORMATION_CONVOCATION", ['formation-instance' => $instance, 'agent' => $inscrit->getAgent(), 'mailing' => $inscrit->getAgent()->getEmail()]); } echo "Action de formation #" . $instance->getId() ." - " . $instance->getFormation()->getLibelle() . " : Envoi des convocations.\n"; $this->getMailingService()->sendMailType("FORMATION_EMARGEMENT", ['formation-instance' => $instance, 'users' => array_map(function (FormationInstanceFormateur $a) { return $a->getEmail(); }, $instance->getFormateurs())]); echo "Action de formation #" . $instance->getId() ." - " . $instance->getFormation()->getLibelle() . " : Envoi des listes d'émargement.\n"; } } } Loading @@ -206,4 +214,9 @@ class FormationInstanceController extends AbstractActionController } } } public function formationConsoleAction() { $this->convoquerAction(); $this->questionnerAction(); } } No newline at end of file module/Formation/src/Formation/Controller/FormationInstanceInscritController.php +73 −0 Changes for module/Formation/src/Formation/Controller/FormationInstanceInscritController.php: 73 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -3,9 +3,13 @@ namespace Formation\Controller; use Application\Form\SelectionAgent\SelectionAgentFormAwareTrait; use Application\Service\Agent\AgentServiceAwareTrait; use Formation\Entity\Db\FormationInstance; use Formation\Entity\Db\FormationInstanceInscrit; use Formation\Service\FormationInstance\FormationInstanceServiceAwareTrait; use Formation\Service\FormationInstanceInscrit\FormationInstanceInscritServiceAwareTrait; use UnicaenApp\Exception\RuntimeException; use UnicaenUtilisateur\Service\User\UserServiceAwareTrait; use Zend\Http\Request; use Zend\Mvc\Controller\AbstractActionController; use Zend\Mvc\Plugin\FlashMessenger\FlashMessenger; Loading @@ -14,11 +18,14 @@ use Zend\View\Model\ViewModel; /** @method FlashMessenger flashMessenger() */ class FormationInstanceInscritController extends AbstractActionController { use AgentServiceAwareTrait; use FormationInstanceServiceAwareTrait; use FormationInstanceInscritServiceAwareTrait; use UserServiceAwareTrait; use SelectionAgentFormAwareTrait; public function ajouterAgentAction() { $instance = $this->getFormationInstanceService()->getRequestedFormationInstance($this); Loading Loading @@ -127,4 +134,70 @@ class FormationInstanceInscritController extends AbstractActionController return $this->redirect()->toRoute('formation-instance/afficher', ['formation-instance' => $inscrit->getInstance()->getId()], [], true); } public function listeFormationsInstancesAction() { $instances = $this->getFormationInstanceService()->getFormationsInstancesByEtat(FormationInstance::ETAT_INSCRIPTION_OUVERTE); $instances = array_filter($instances, function (FormationInstance $a) { return $a->isAutoInscription();}); $utilisateur = $this->getUserService()->getConnectedUser(); $agent = $this->getAgentService()->getAgentByUser($utilisateur); $inscriptions = $this->getFormationInstanceInscritService()->getFormationsByInscrit($agent); return new ViewModel([ 'instances' => $instances, 'inscriptions' => $inscriptions, 'agent' => $agent, ]); } public function inscriptionAction() { $instance = $this->getFormationInstanceService()->getRequestedFormationInstance($this); $agent = $this->getAgentService()->getRequestedAgent($this); $user = $this->getUserService()->getConnectedUser(); $break = false; $liste = $instance->getListeDisponible(); if ($agent->getUtilisateur() !== $user) { $this->flashMessenger()->addErrorMessage("L'utilisateur connecté ne correspond à l'agent en train de s'inscrire !"); $break = true; } if ($liste === null) { $this->flashMessenger()->addErrorMessage("Plus de place disponible sur aucune des listes de cette action de formation."); $break = true; } if (!$break) { $inscrit = new FormationInstanceInscrit(); $inscrit->setInstance($instance); $inscrit->setAgent($agent); $inscrit->setListe($liste); $this->getFormationInstanceInscritService()->create($inscrit); $this->flashMessenger()->addSuccessMessage("Inscription effectué sur la liste ".$liste."."); } return $this->redirect()->toRoute('liste-formations-instances', [], ['fragment' => 'instances'], true); } public function desinscriptionAction() { $inscrit = $this->getFormationInstanceInscritService()->getRequestedFormationInstanceInscrit($this); $agent = $inscrit->getAgent(); $user = $this->getUserService()->getConnectedUser(); $break = false; if ($agent->getUtilisateur() !== $user) { $this->flashMessenger()->addErrorMessage("L'utilisateur connecté ne correspond à l'agent en train de se déinscrire !"); $break = true; } if (!$break) { $this->getFormationInstanceInscritService()->historise($inscrit); $this->flashMessenger()->addSuccessMessage("Inscription annulée."); } return $this->redirect()->toRoute('liste-formations-instances', [], ['fragment' => 'inscriptions'], true); } } No newline at end of file module/Formation/src/Formation/Controller/FormationInstanceInscritControllerFactory.php +8 −0 Changes for module/Formation/src/Formation/Controller/FormationInstanceInscritControllerFactory.php: 8 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -3,9 +3,11 @@ namespace Formation\Controller; use Application\Form\SelectionAgent\SelectionAgentForm; use Application\Service\Agent\AgentService; use Formation\Service\FormationInstance\FormationInstanceService; use Formation\Service\FormationInstanceInscrit\FormationInstanceInscritService; use Interop\Container\ContainerInterface; use UnicaenUtilisateur\Service\User\UserService; class FormationInstanceInscritControllerFactory { Loading @@ -17,11 +19,15 @@ class FormationInstanceInscritControllerFactory public function __invoke(ContainerInterface $container) { /** * @var AgentService $agentService * @var FormationInstanceService $formationInstanceService * @var FormationInstanceInscritService $formationInstanceInscritService * @var UserService $userService */ $agentService = $container->get(AgentService::class); $formationInstanceService = $container->get(FormationInstanceService::class); $formationInstanceInscritService = $container->get(FormationInstanceInscritService::class); $userService = $container->get(UserService::class); /** * @var SelectionAgentForm $selectionAgentForm Loading @@ -29,8 +35,10 @@ class FormationInstanceInscritControllerFactory $selectionAgentForm = $container->get('FormElementManager')->get(SelectionAgentForm::class); $controller = new FormationInstanceInscritController(); $controller->setAgentService($agentService); $controller->setFormationInstanceService($formationInstanceService); $controller->setFormationInstanceInscritService($formationInstanceInscritService); $controller->setUserService($userService); $controller->setSelectionAgentForm($selectionAgentForm); return $controller; } Loading Loading
module/Formation/config/merged/formation-instance-inscrit.config.php +58 −0 Changes for module/Formation/config/merged/formation-instance-inscrit.config.php: 58 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -2,12 +2,14 @@ namespace Formation; use Application\Controller\IndexController; use Formation\Controller\FormationInstanceInscritController; use Formation\Controller\FormationInstanceInscritControllerFactory; use Formation\Provider\Privilege\FormationinstanceinscritPrivileges; use Formation\Service\FormationInstanceInscrit\FormationInstanceInscritService; use Formation\Service\FormationInstanceInscrit\FormationInstanceInscritServiceFactory; use UnicaenPrivilege\Guard\PrivilegeController; use Zend\Router\Http\Literal; use Zend\Router\Http\Segment; return [ Loading @@ -28,14 +30,70 @@ return [ FormationinstanceinscritPrivileges::FORMATIONINSTANCEINSCRIT_MODIFIER, ], ], [ 'controller' => FormationInstanceInscritController::class, 'action' => [ 'liste-formations-instances', 'inscription', 'desinscription', ], 'roles' => [ 'Agent', ], ], ], ], ], 'navigation' => [ 'default' => [ 'home' => [ 'pages' => [ 'formations' => [ 'order' => 1000, 'label' => 'Formations', 'title' => "Gestion des actions de formations et des inscriptions à celles-ci", 'route' => 'liste-formations-instances', 'resource' => PrivilegeController::getResourceId(FormationInstanceInscritController::class, 'liste-formations-instances'), ], ], ], ], ], 'router' => [ 'routes' => [ 'liste-formations-instances' => [ 'type' => Literal::class, 'options' => [ 'route' => '/liste-formations-instances', 'defaults' => [ 'controller' => FormationInstanceInscritController::class, 'action' => 'liste-formations-instances', ], ], ], 'formation-instance' => [ 'child_routes' => [ 'inscription' => [ 'type' => Segment::class, 'options' => [ 'route' => '/inscription/:formation-instance/:agent', 'defaults' => [ 'controller' => FormationInstanceInscritController::class, 'action' => 'inscription', ], ], ], 'desinscription' => [ 'type' => Segment::class, 'options' => [ 'route' => '/desinscription/:inscrit', 'defaults' => [ 'controller' => FormationInstanceInscritController::class, 'action' => 'desinscription', ], ], ], 'ajouter-agent' => [ 'type' => Segment::class, 'options' => [ Loading
module/Formation/config/merged/formation-instance.config.php +11 −0 Changes for module/Formation/config/merged/formation-instance.config.php: 11 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -86,6 +86,7 @@ return [ 'action' => [ 'convoquer', 'questionner', 'formation-console', ], 'roles' => [], ], Loading Loading @@ -223,6 +224,16 @@ return [ ], ], ], 'formation-console' => [ 'type' => Simple::class, 'options' => [ 'route' => 'formation-console', 'defaults' => [ 'controller' => FormationInstanceController::class, 'action' => 'formation-console' ], ], ], ], ], ], Loading
module/Formation/src/Formation/Controller/FormationInstanceController.php +15 −2 Changes for module/Formation/src/Formation/Controller/FormationInstanceController.php: 15 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ use Autoform\Service\Formulaire\FormulaireInstanceServiceAwareTrait; use DateInterval; use DateTime; use Formation\Entity\Db\FormationInstance; use Formation\Entity\Db\FormationInstanceFormateur; use Formation\Form\FormationInstance\FormationInstanceFormAwareTrait; use Formation\Service\Formation\FormationServiceAwareTrait; use Formation\Service\FormationInstance\FormationInstanceServiceAwareTrait; Loading Loading @@ -168,8 +169,12 @@ class FormationInstanceController extends AbstractActionController if ($instance->getEtat()->getCode() === FormationInstance::ETAT_INSCRIPTION_OUVERTE) { $instance->setEtat($this->getEtatService()->getEtatByCode(FormationInstance::ETAT_INSCRIPTION_FERMEE)); $this->getFormationInstanceService()->update($instance); $this->getMailingService()->sendMailType("FORMATION_LISTE_PRINCIPALE", ['formation-instance' => $instance, 'mailing' => 'ZZZunicaen-biats@unicaen.fr']); $this->getMailingService()->sendMailType("FORMATION_LISTE_SECONDAIRE", ['formation-instance' => $instance, 'mailing' => 'ZZZunicaen-biats@unicaen.fr']); foreach ($instance->getListePrincipale() as $inscrit) { $this->getMailingService()->sendMailType("FORMATION_LISTE_PRINCIPALE", ['formation-instance' => $instance, 'mailing' => $inscrit->getAgent()->getEmail()]); } foreach ($instance->getListeComplementaire() as $inscrit) { $this->getMailingService()->sendMailType("FORMATION_LISTE_SECONDAIRE", ['formation-instance' => $instance, 'mailing' => $inscrit->getAgent()->getEmail()]); } } return $this->redirect()->toRoute('formation-instance/afficher', ['formation-instance' => $instance->getId()], [], true); Loading @@ -187,6 +192,9 @@ class FormationInstanceController extends AbstractActionController $this->getMailingService()->sendMailType("FORMATION_CONVOCATION", ['formation-instance' => $instance, 'agent' => $inscrit->getAgent(), 'mailing' => $inscrit->getAgent()->getEmail()]); } echo "Action de formation #" . $instance->getId() ." - " . $instance->getFormation()->getLibelle() . " : Envoi des convocations.\n"; $this->getMailingService()->sendMailType("FORMATION_EMARGEMENT", ['formation-instance' => $instance, 'users' => array_map(function (FormationInstanceFormateur $a) { return $a->getEmail(); }, $instance->getFormateurs())]); echo "Action de formation #" . $instance->getId() ." - " . $instance->getFormation()->getLibelle() . " : Envoi des listes d'émargement.\n"; } } } Loading @@ -206,4 +214,9 @@ class FormationInstanceController extends AbstractActionController } } } public function formationConsoleAction() { $this->convoquerAction(); $this->questionnerAction(); } } No newline at end of file
module/Formation/src/Formation/Controller/FormationInstanceInscritController.php +73 −0 Changes for module/Formation/src/Formation/Controller/FormationInstanceInscritController.php: 73 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -3,9 +3,13 @@ namespace Formation\Controller; use Application\Form\SelectionAgent\SelectionAgentFormAwareTrait; use Application\Service\Agent\AgentServiceAwareTrait; use Formation\Entity\Db\FormationInstance; use Formation\Entity\Db\FormationInstanceInscrit; use Formation\Service\FormationInstance\FormationInstanceServiceAwareTrait; use Formation\Service\FormationInstanceInscrit\FormationInstanceInscritServiceAwareTrait; use UnicaenApp\Exception\RuntimeException; use UnicaenUtilisateur\Service\User\UserServiceAwareTrait; use Zend\Http\Request; use Zend\Mvc\Controller\AbstractActionController; use Zend\Mvc\Plugin\FlashMessenger\FlashMessenger; Loading @@ -14,11 +18,14 @@ use Zend\View\Model\ViewModel; /** @method FlashMessenger flashMessenger() */ class FormationInstanceInscritController extends AbstractActionController { use AgentServiceAwareTrait; use FormationInstanceServiceAwareTrait; use FormationInstanceInscritServiceAwareTrait; use UserServiceAwareTrait; use SelectionAgentFormAwareTrait; public function ajouterAgentAction() { $instance = $this->getFormationInstanceService()->getRequestedFormationInstance($this); Loading Loading @@ -127,4 +134,70 @@ class FormationInstanceInscritController extends AbstractActionController return $this->redirect()->toRoute('formation-instance/afficher', ['formation-instance' => $inscrit->getInstance()->getId()], [], true); } public function listeFormationsInstancesAction() { $instances = $this->getFormationInstanceService()->getFormationsInstancesByEtat(FormationInstance::ETAT_INSCRIPTION_OUVERTE); $instances = array_filter($instances, function (FormationInstance $a) { return $a->isAutoInscription();}); $utilisateur = $this->getUserService()->getConnectedUser(); $agent = $this->getAgentService()->getAgentByUser($utilisateur); $inscriptions = $this->getFormationInstanceInscritService()->getFormationsByInscrit($agent); return new ViewModel([ 'instances' => $instances, 'inscriptions' => $inscriptions, 'agent' => $agent, ]); } public function inscriptionAction() { $instance = $this->getFormationInstanceService()->getRequestedFormationInstance($this); $agent = $this->getAgentService()->getRequestedAgent($this); $user = $this->getUserService()->getConnectedUser(); $break = false; $liste = $instance->getListeDisponible(); if ($agent->getUtilisateur() !== $user) { $this->flashMessenger()->addErrorMessage("L'utilisateur connecté ne correspond à l'agent en train de s'inscrire !"); $break = true; } if ($liste === null) { $this->flashMessenger()->addErrorMessage("Plus de place disponible sur aucune des listes de cette action de formation."); $break = true; } if (!$break) { $inscrit = new FormationInstanceInscrit(); $inscrit->setInstance($instance); $inscrit->setAgent($agent); $inscrit->setListe($liste); $this->getFormationInstanceInscritService()->create($inscrit); $this->flashMessenger()->addSuccessMessage("Inscription effectué sur la liste ".$liste."."); } return $this->redirect()->toRoute('liste-formations-instances', [], ['fragment' => 'instances'], true); } public function desinscriptionAction() { $inscrit = $this->getFormationInstanceInscritService()->getRequestedFormationInstanceInscrit($this); $agent = $inscrit->getAgent(); $user = $this->getUserService()->getConnectedUser(); $break = false; if ($agent->getUtilisateur() !== $user) { $this->flashMessenger()->addErrorMessage("L'utilisateur connecté ne correspond à l'agent en train de se déinscrire !"); $break = true; } if (!$break) { $this->getFormationInstanceInscritService()->historise($inscrit); $this->flashMessenger()->addSuccessMessage("Inscription annulée."); } return $this->redirect()->toRoute('liste-formations-instances', [], ['fragment' => 'inscriptions'], true); } } No newline at end of file
module/Formation/src/Formation/Controller/FormationInstanceInscritControllerFactory.php +8 −0 Changes for module/Formation/src/Formation/Controller/FormationInstanceInscritControllerFactory.php: 8 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -3,9 +3,11 @@ namespace Formation\Controller; use Application\Form\SelectionAgent\SelectionAgentForm; use Application\Service\Agent\AgentService; use Formation\Service\FormationInstance\FormationInstanceService; use Formation\Service\FormationInstanceInscrit\FormationInstanceInscritService; use Interop\Container\ContainerInterface; use UnicaenUtilisateur\Service\User\UserService; class FormationInstanceInscritControllerFactory { Loading @@ -17,11 +19,15 @@ class FormationInstanceInscritControllerFactory public function __invoke(ContainerInterface $container) { /** * @var AgentService $agentService * @var FormationInstanceService $formationInstanceService * @var FormationInstanceInscritService $formationInstanceInscritService * @var UserService $userService */ $agentService = $container->get(AgentService::class); $formationInstanceService = $container->get(FormationInstanceService::class); $formationInstanceInscritService = $container->get(FormationInstanceInscritService::class); $userService = $container->get(UserService::class); /** * @var SelectionAgentForm $selectionAgentForm Loading @@ -29,8 +35,10 @@ class FormationInstanceInscritControllerFactory $selectionAgentForm = $container->get('FormElementManager')->get(SelectionAgentForm::class); $controller = new FormationInstanceInscritController(); $controller->setAgentService($agentService); $controller->setFormationInstanceService($formationInstanceService); $controller->setFormationInstanceInscritService($formationInstanceInscritService); $controller->setUserService($userService); $controller->setSelectionAgentForm($selectionAgentForm); return $controller; } Loading