Loading documentation/release/3.1.5.md +1 −0 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ * Ajout des temoins hiérarchique et fonctionnelle pour les affectations * Ajout du pourcentage de l'affectation pour les affectations * [FIX] correction de la route de retour lors de l'abonnement/désabonnement à une formation * [Formation] Ajout d'un bouton pour changer l'état vers un état donnée sans respecter le circuit **Modifications de la base de donnée** Loading module/Formation/config/merged/formation-instance.config.php +12 −0 Original line number Diff line number Diff line Loading @@ -78,6 +78,7 @@ return [ 'envoyer-convocation', 'demander-retour', 'cloturer', 'changer-etat', ], 'privileges' => [ FormationinstancePrivileges::FORMATIONINSTANCE_GERER_INSCRIPTION, Loading Loading @@ -307,6 +308,17 @@ return [ ], ], ], /** @see FormationInstanceController::changerEtatAction() */ 'changer-etat' => [ 'type' => Segment::class, 'options' => [ 'route' => '/changer-etat/:formation-instance', 'defaults' => [ 'controller' => FormationInstanceController::class, 'action' => 'changer-etat', ], ], ], ], ], ], Loading module/Formation/src/Formation/Controller/FormationInstanceController.php +49 −19 Original line number Diff line number Diff line Loading @@ -2,24 +2,22 @@ namespace Formation\Controller; use Formation\Service\Notification\NotificationServiceAwareTrait; use Formation\Service\Presence\PresenceAwareTrait; use UnicaenAutoform\Service\Formulaire\FormulaireInstanceServiceAwareTrait; use DateInterval; use DateTime; use Formation\Form\FormationInstance\FormationInstanceFormAwareTrait; use Formation\Service\Evenement\RappelAgentAvantFormationServiceAwareTrait; use Formation\Provider\Etat\SessionEtats; use Formation\Service\Formation\FormationServiceAwareTrait; use Formation\Service\FormationInstance\FormationInstanceServiceAwareTrait; use Formation\Service\FormationInstanceInscrit\FormationInstanceInscritServiceAwareTrait; use UnicaenEtat\Service\Etat\EtatServiceAwareTrait; use UnicaenMail\Service\Mail\MailServiceAwareTrait; use UnicaenParametre\Service\Parametre\ParametreServiceAwareTrait; use Formation\Service\Notification\NotificationServiceAwareTrait; use Formation\Service\Presence\PresenceAwareTrait; use Laminas\Http\Request; use Laminas\Http\Response; use Laminas\Mvc\Controller\AbstractActionController; use Laminas\Mvc\Plugin\FlashMessenger\FlashMessenger; use Laminas\View\Model\ViewModel; use UnicaenAutoform\Service\Formulaire\FormulaireInstanceServiceAwareTrait; use UnicaenEtat\Service\Etat\EtatServiceAwareTrait; use UnicaenMail\Service\Mail\MailServiceAwareTrait; use UnicaenParametre\Service\Parametre\ParametreServiceAwareTrait; /** @method FlashMessenger flashMessenger() */ Loading @@ -35,7 +33,6 @@ class FormationInstanceController extends AbstractActionController use ParametreServiceAwareTrait; use PresenceAwareTrait; use FormationInstanceFormAwareTrait; use RappelAgentAvantFormationServiceAwareTrait; public function indexAction() : ViewModel { Loading Loading @@ -196,12 +193,6 @@ class FormationInstanceController extends AbstractActionController $instance = $this->getFormationInstanceService()->getRequestedFormationInstance($this); $this->getFormationInstanceService()->ouvrirInscription($instance); //notification abonnement $abonnements = $instance->getFormation()->getAbonnements(); foreach ($abonnements as $abonnement) { if ($abonnement->estNonHistorise()) $this->getNotificationService()->triggerNouvelleSession($instance, $abonnement); } return $this->redirect()->toRoute('formation-instance/afficher', ['formation-instance' => $instance->getId()], [], true); } Loading @@ -210,9 +201,7 @@ class FormationInstanceController extends AbstractActionController $instance = $this->getFormationInstanceService()->getRequestedFormationInstance($this); $this->getFormationInstanceService()->fermerInscription($instance); $dateRappel = DateTime::createFromFormat('d/m/Y H:i', $instance->getDebut() . " 08:00"); $dateRappel->sub(new DateInterval('P4D')); $this->getRappelAgentAvantFormationService()->creer($instance, $dateRappel); return $this->redirect()->toRoute('formation-instance/afficher', ['formation-instance' => $instance->getId()], [], true); } Loading Loading @@ -252,4 +241,45 @@ class FormationInstanceController extends AbstractActionController $this->getFormationInstanceService()->reouvrir($instance); return $this->redirect()->toRoute('formation-instance/afficher', ['formation-instance' => $instance->getId()], [], true); } public function changerEtatAction() : ViewModel { $instance = $this->getFormationInstanceService()->getRequestedFormationInstance($this); $request = $this->getRequest(); if ($request->isPost()) { $data = $request->getPost(); $etat = $this->getEtatService()->getEtat($data['etat']); switch($etat->getCode()) { case SessionEtats::ETAT_CREATION_EN_COURS : $this->getFormationInstanceService()->recreation($instance); exit(); case SessionEtats::ETAT_INSCRIPTION_OUVERTE : $this->getFormationInstanceService()->ouvrirInscription($instance); exit(); case SessionEtats::ETAT_INSCRIPTION_FERMEE : $this->getFormationInstanceService()->fermerInscription($instance); exit(); case SessionEtats::ETAT_FORMATION_CONVOCATION : $this->getFormationInstanceService()->envoyerConvocation($instance); exit(); case SessionEtats::ETAT_ATTENTE_RETOURS : $this->getFormationInstanceService()->demanderRetour($instance); exit(); case SessionEtats::ETAT_CLOTURE_INSTANCE : $this->getFormationInstanceService()->cloturer($instance); exit(); default : } exit(); } return new ViewModel([ 'title' => "Changer l'état de la session de formation", 'etats' => $this->getEtatService()->getEtatsByTypeCode(SessionEtats::TYPE), 'instance' => $instance, ]); } } No newline at end of file module/Formation/src/Formation/Controller/FormationInstanceControllerFactory.php +5 −9 Original line number Diff line number Diff line Loading @@ -2,17 +2,16 @@ namespace Formation\Controller; use Formation\Service\Notification\NotificationService; use Formation\Service\Presence\PresenceService; use Psr\Container\ContainerExceptionInterface; use Psr\Container\NotFoundExceptionInterface; use UnicaenAutoform\Service\Formulaire\FormulaireInstanceService; use Formation\Form\FormationInstance\FormationInstanceForm; use Formation\Service\Evenement\RappelAgentAvantFormationService; use Formation\Service\Formation\FormationService; use Formation\Service\FormationInstance\FormationInstanceService; use Formation\Service\FormationInstanceInscrit\FormationInstanceInscritService; use Formation\Service\Notification\NotificationService; use Formation\Service\Presence\PresenceService; use Interop\Container\ContainerInterface; use Psr\Container\ContainerExceptionInterface; use Psr\Container\NotFoundExceptionInterface; use UnicaenAutoform\Service\Formulaire\FormulaireInstanceService; use UnicaenEtat\Service\Etat\EtatService; use UnicaenMail\Service\Mail\MailService; use UnicaenParametre\Service\Parametre\ParametreService; Loading @@ -38,7 +37,6 @@ class FormationInstanceControllerFactory * @var NotificationService $notificationService * @var ParametreService $parametreService * @var PresenceService $presenceService * @var RappelAgentAvantFormationService $rappelAgentAvantFormationService */ $etatService = $container->get(EtatService::class); $formationService = $container->get(FormationService::class); Loading @@ -49,7 +47,6 @@ class FormationInstanceControllerFactory $notificationService = $container->get(NotificationService::class); $parametreService = $container->get(ParametreService::class); $presenceService = $container->get(PresenceService::class); $rappelAgentAvantFormationService = $container->get(RappelAgentAvantFormationService::class); /** * @var FormationInstanceForm $formationInstanceForm Loading @@ -68,7 +65,6 @@ class FormationInstanceControllerFactory $controller->setNotificationService($notificationService); $controller->setParametreService($parametreService); $controller->setPresenceService($presenceService); $controller->setRappelAgentAvantFormationService($rappelAgentAvantFormationService); return $controller; } Loading module/Formation/src/Formation/Service/FormationInstance/FormationInstanceService.php +23 −1 Original line number Diff line number Diff line Loading @@ -14,6 +14,7 @@ use Formation\Entity\Db\FormationInstanceInscrit; use Formation\Entity\Db\PlanDeFormation; use Formation\Provider\Etat\SessionEtats; use Formation\Service\Abonnement\AbonnementServiceAwareTrait; use Formation\Service\Evenement\RappelAgentAvantFormationServiceAwareTrait; use Formation\Service\Notification\NotificationServiceAwareTrait; use Laminas\Mvc\Controller\AbstractActionController; use UnicaenApp\Exception\RuntimeException; Loading @@ -30,6 +31,7 @@ class FormationInstanceService use EtatServiceAwareTrait; use NotificationServiceAwareTrait; use ParametreServiceAwareTrait; use RappelAgentAvantFormationServiceAwareTrait; use SourceServiceAwareTrait; Loading Loading @@ -314,6 +316,16 @@ class FormationInstanceService /** Fonctions associées aux états de l'instance *******************************************************************/ public function recreation(FormationInstance $instance) : FormationInstance { $instance->setEtat($this->getEtatService()->getEtatByCode(SessionEtats::ETAT_CREATION_EN_COURS)); $this->update($instance); return $instance; } /** * @param FormationInstance $instance * @return FormationInstance Loading @@ -323,6 +335,12 @@ class FormationInstanceService $instance->setEtat($this->getEtatService()->getEtatByCode(SessionEtats::ETAT_INSCRIPTION_OUVERTE)); $this->update($instance); //notification abonnement $abonnements = $instance->getFormation()->getAbonnements(); foreach ($abonnements as $abonnement) { if ($abonnement->estNonHistorise()) $this->getNotificationService()->triggerNouvelleSession($instance, $abonnement); } return $instance; } Loading @@ -349,6 +367,11 @@ class FormationInstanceService $abonnement = $this->getAbonnementService()->getAbonnementByAgentAndFormation($agent, $formation); if ($abonnement === null) $this->getAbonnementService()->ajouterAbonnement($agent, $formation); } $dateRappel = DateTime::createFromFormat('d/m/Y H:i', $instance->getDebut() . " 08:00"); $dateRappel->sub(new DateInterval('P4D')); $this->getRappelAgentAvantFormationService()->creer($instance, $dateRappel); return $instance; } Loading Loading @@ -481,5 +504,4 @@ class FormationInstanceService return $result; } } No newline at end of file Loading
documentation/release/3.1.5.md +1 −0 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ * Ajout des temoins hiérarchique et fonctionnelle pour les affectations * Ajout du pourcentage de l'affectation pour les affectations * [FIX] correction de la route de retour lors de l'abonnement/désabonnement à une formation * [Formation] Ajout d'un bouton pour changer l'état vers un état donnée sans respecter le circuit **Modifications de la base de donnée** Loading
module/Formation/config/merged/formation-instance.config.php +12 −0 Original line number Diff line number Diff line Loading @@ -78,6 +78,7 @@ return [ 'envoyer-convocation', 'demander-retour', 'cloturer', 'changer-etat', ], 'privileges' => [ FormationinstancePrivileges::FORMATIONINSTANCE_GERER_INSCRIPTION, Loading Loading @@ -307,6 +308,17 @@ return [ ], ], ], /** @see FormationInstanceController::changerEtatAction() */ 'changer-etat' => [ 'type' => Segment::class, 'options' => [ 'route' => '/changer-etat/:formation-instance', 'defaults' => [ 'controller' => FormationInstanceController::class, 'action' => 'changer-etat', ], ], ], ], ], ], Loading
module/Formation/src/Formation/Controller/FormationInstanceController.php +49 −19 Original line number Diff line number Diff line Loading @@ -2,24 +2,22 @@ namespace Formation\Controller; use Formation\Service\Notification\NotificationServiceAwareTrait; use Formation\Service\Presence\PresenceAwareTrait; use UnicaenAutoform\Service\Formulaire\FormulaireInstanceServiceAwareTrait; use DateInterval; use DateTime; use Formation\Form\FormationInstance\FormationInstanceFormAwareTrait; use Formation\Service\Evenement\RappelAgentAvantFormationServiceAwareTrait; use Formation\Provider\Etat\SessionEtats; use Formation\Service\Formation\FormationServiceAwareTrait; use Formation\Service\FormationInstance\FormationInstanceServiceAwareTrait; use Formation\Service\FormationInstanceInscrit\FormationInstanceInscritServiceAwareTrait; use UnicaenEtat\Service\Etat\EtatServiceAwareTrait; use UnicaenMail\Service\Mail\MailServiceAwareTrait; use UnicaenParametre\Service\Parametre\ParametreServiceAwareTrait; use Formation\Service\Notification\NotificationServiceAwareTrait; use Formation\Service\Presence\PresenceAwareTrait; use Laminas\Http\Request; use Laminas\Http\Response; use Laminas\Mvc\Controller\AbstractActionController; use Laminas\Mvc\Plugin\FlashMessenger\FlashMessenger; use Laminas\View\Model\ViewModel; use UnicaenAutoform\Service\Formulaire\FormulaireInstanceServiceAwareTrait; use UnicaenEtat\Service\Etat\EtatServiceAwareTrait; use UnicaenMail\Service\Mail\MailServiceAwareTrait; use UnicaenParametre\Service\Parametre\ParametreServiceAwareTrait; /** @method FlashMessenger flashMessenger() */ Loading @@ -35,7 +33,6 @@ class FormationInstanceController extends AbstractActionController use ParametreServiceAwareTrait; use PresenceAwareTrait; use FormationInstanceFormAwareTrait; use RappelAgentAvantFormationServiceAwareTrait; public function indexAction() : ViewModel { Loading Loading @@ -196,12 +193,6 @@ class FormationInstanceController extends AbstractActionController $instance = $this->getFormationInstanceService()->getRequestedFormationInstance($this); $this->getFormationInstanceService()->ouvrirInscription($instance); //notification abonnement $abonnements = $instance->getFormation()->getAbonnements(); foreach ($abonnements as $abonnement) { if ($abonnement->estNonHistorise()) $this->getNotificationService()->triggerNouvelleSession($instance, $abonnement); } return $this->redirect()->toRoute('formation-instance/afficher', ['formation-instance' => $instance->getId()], [], true); } Loading @@ -210,9 +201,7 @@ class FormationInstanceController extends AbstractActionController $instance = $this->getFormationInstanceService()->getRequestedFormationInstance($this); $this->getFormationInstanceService()->fermerInscription($instance); $dateRappel = DateTime::createFromFormat('d/m/Y H:i', $instance->getDebut() . " 08:00"); $dateRappel->sub(new DateInterval('P4D')); $this->getRappelAgentAvantFormationService()->creer($instance, $dateRappel); return $this->redirect()->toRoute('formation-instance/afficher', ['formation-instance' => $instance->getId()], [], true); } Loading Loading @@ -252,4 +241,45 @@ class FormationInstanceController extends AbstractActionController $this->getFormationInstanceService()->reouvrir($instance); return $this->redirect()->toRoute('formation-instance/afficher', ['formation-instance' => $instance->getId()], [], true); } public function changerEtatAction() : ViewModel { $instance = $this->getFormationInstanceService()->getRequestedFormationInstance($this); $request = $this->getRequest(); if ($request->isPost()) { $data = $request->getPost(); $etat = $this->getEtatService()->getEtat($data['etat']); switch($etat->getCode()) { case SessionEtats::ETAT_CREATION_EN_COURS : $this->getFormationInstanceService()->recreation($instance); exit(); case SessionEtats::ETAT_INSCRIPTION_OUVERTE : $this->getFormationInstanceService()->ouvrirInscription($instance); exit(); case SessionEtats::ETAT_INSCRIPTION_FERMEE : $this->getFormationInstanceService()->fermerInscription($instance); exit(); case SessionEtats::ETAT_FORMATION_CONVOCATION : $this->getFormationInstanceService()->envoyerConvocation($instance); exit(); case SessionEtats::ETAT_ATTENTE_RETOURS : $this->getFormationInstanceService()->demanderRetour($instance); exit(); case SessionEtats::ETAT_CLOTURE_INSTANCE : $this->getFormationInstanceService()->cloturer($instance); exit(); default : } exit(); } return new ViewModel([ 'title' => "Changer l'état de la session de formation", 'etats' => $this->getEtatService()->getEtatsByTypeCode(SessionEtats::TYPE), 'instance' => $instance, ]); } } No newline at end of file
module/Formation/src/Formation/Controller/FormationInstanceControllerFactory.php +5 −9 Original line number Diff line number Diff line Loading @@ -2,17 +2,16 @@ namespace Formation\Controller; use Formation\Service\Notification\NotificationService; use Formation\Service\Presence\PresenceService; use Psr\Container\ContainerExceptionInterface; use Psr\Container\NotFoundExceptionInterface; use UnicaenAutoform\Service\Formulaire\FormulaireInstanceService; use Formation\Form\FormationInstance\FormationInstanceForm; use Formation\Service\Evenement\RappelAgentAvantFormationService; use Formation\Service\Formation\FormationService; use Formation\Service\FormationInstance\FormationInstanceService; use Formation\Service\FormationInstanceInscrit\FormationInstanceInscritService; use Formation\Service\Notification\NotificationService; use Formation\Service\Presence\PresenceService; use Interop\Container\ContainerInterface; use Psr\Container\ContainerExceptionInterface; use Psr\Container\NotFoundExceptionInterface; use UnicaenAutoform\Service\Formulaire\FormulaireInstanceService; use UnicaenEtat\Service\Etat\EtatService; use UnicaenMail\Service\Mail\MailService; use UnicaenParametre\Service\Parametre\ParametreService; Loading @@ -38,7 +37,6 @@ class FormationInstanceControllerFactory * @var NotificationService $notificationService * @var ParametreService $parametreService * @var PresenceService $presenceService * @var RappelAgentAvantFormationService $rappelAgentAvantFormationService */ $etatService = $container->get(EtatService::class); $formationService = $container->get(FormationService::class); Loading @@ -49,7 +47,6 @@ class FormationInstanceControllerFactory $notificationService = $container->get(NotificationService::class); $parametreService = $container->get(ParametreService::class); $presenceService = $container->get(PresenceService::class); $rappelAgentAvantFormationService = $container->get(RappelAgentAvantFormationService::class); /** * @var FormationInstanceForm $formationInstanceForm Loading @@ -68,7 +65,6 @@ class FormationInstanceControllerFactory $controller->setNotificationService($notificationService); $controller->setParametreService($parametreService); $controller->setPresenceService($presenceService); $controller->setRappelAgentAvantFormationService($rappelAgentAvantFormationService); return $controller; } Loading
module/Formation/src/Formation/Service/FormationInstance/FormationInstanceService.php +23 −1 Original line number Diff line number Diff line Loading @@ -14,6 +14,7 @@ use Formation\Entity\Db\FormationInstanceInscrit; use Formation\Entity\Db\PlanDeFormation; use Formation\Provider\Etat\SessionEtats; use Formation\Service\Abonnement\AbonnementServiceAwareTrait; use Formation\Service\Evenement\RappelAgentAvantFormationServiceAwareTrait; use Formation\Service\Notification\NotificationServiceAwareTrait; use Laminas\Mvc\Controller\AbstractActionController; use UnicaenApp\Exception\RuntimeException; Loading @@ -30,6 +31,7 @@ class FormationInstanceService use EtatServiceAwareTrait; use NotificationServiceAwareTrait; use ParametreServiceAwareTrait; use RappelAgentAvantFormationServiceAwareTrait; use SourceServiceAwareTrait; Loading Loading @@ -314,6 +316,16 @@ class FormationInstanceService /** Fonctions associées aux états de l'instance *******************************************************************/ public function recreation(FormationInstance $instance) : FormationInstance { $instance->setEtat($this->getEtatService()->getEtatByCode(SessionEtats::ETAT_CREATION_EN_COURS)); $this->update($instance); return $instance; } /** * @param FormationInstance $instance * @return FormationInstance Loading @@ -323,6 +335,12 @@ class FormationInstanceService $instance->setEtat($this->getEtatService()->getEtatByCode(SessionEtats::ETAT_INSCRIPTION_OUVERTE)); $this->update($instance); //notification abonnement $abonnements = $instance->getFormation()->getAbonnements(); foreach ($abonnements as $abonnement) { if ($abonnement->estNonHistorise()) $this->getNotificationService()->triggerNouvelleSession($instance, $abonnement); } return $instance; } Loading @@ -349,6 +367,11 @@ class FormationInstanceService $abonnement = $this->getAbonnementService()->getAbonnementByAgentAndFormation($agent, $formation); if ($abonnement === null) $this->getAbonnementService()->ajouterAbonnement($agent, $formation); } $dateRappel = DateTime::createFromFormat('d/m/Y H:i', $instance->getDebut() . " 08:00"); $dateRappel->sub(new DateInterval('P4D')); $this->getRappelAgentAvantFormationService()->creer($instance, $dateRappel); return $instance; } Loading Loading @@ -481,5 +504,4 @@ class FormationInstanceService return $result; } } No newline at end of file