Loading documentation/release/3.0.1.md +35 −0 Original line number Diff line number Diff line Loading @@ -19,4 +19,39 @@ alter table formation_seance add volume_fin timestamp; -- partie EVENEMENT INSERT INTO unicaen_evenement_etat (CODE, LIBELLE, DESCRIPTION) VALUES ('annule', 'Événement dont le traitement a été annulé', null); alter table unicaen_evenement_instance add mots_clefs text; -- table de parametre des sessions de formation create table formation_session_parametre ( id serial constraint formation_session_parametre_pk primary key, mail bool default true not null, evenement bool default true not null, enquete bool default true not null, histo_creation timestamp not null, histo_createur_id integer not null constraint formation_session_parametre_unicaen_utilisateur_user_null_fk_1 references unicaen_utilisateur_user (id), histo_modification timestamp, histo_modificateur_id integer constraint formation_session_parametre_unicaen_utilisateur_user_null_fk_2 references unicaen_utilisateur_user (id), histo_destruction timestamp, histo_destructeur_id integer constraint formation_session_parametre_unicaen_utilisateur_user_null_fk_3 references unicaen_utilisateur_user (id) ); comment on table formation_session_parametre is 'Table permettant de parametre le comportement d''une session'; alter table formation_instance add parametre_id integer; -- column reordering is not supported formation_instance.parametre_id alter table formation_instance add constraint formation_instance_formation_session_parametre_null_fk foreign key (parametre_id) references formation_session_parametre (id) on delete set null; ``` No newline at end of file module/Formation/config/merged/session-parametre.config.php 0 → 100644 +80 −0 Original line number Diff line number Diff line <?php namespace Formation; use Formation\Controller\SessionParametreController; use Formation\Controller\SessionParametreControllerFactory; use Formation\Form\SessionParametre\SessionParametreForm; use Formation\Form\SessionParametre\SessionParametreFormFactory; use Formation\Form\SessionParametre\SessionParametreHydrator; use Formation\Form\SessionParametre\SessionParametreHydratorFactory; use Formation\Provider\Privilege\FormationinstancePrivileges; use Formation\Service\SessionParametre\SessionParametreService; use Formation\Service\SessionParametre\SessionParametreServiceFactory; use UnicaenPrivilege\Guard\PrivilegeController; use Laminas\Router\Http\Literal; use Laminas\Router\Http\Segment; return [ 'bjyauthorize' => [ 'guards' => [ PrivilegeController::class => [ [ 'controller' => SessionParametreController::class, 'action' => [ 'modifier', ], 'privileges' => [ FormationinstancePrivileges::FORMATIONINSTANCE_MODIFIER, ], ], ], ], ], 'router' => [ 'routes' => [ 'formation' => [ 'type' => Literal::class, 'options' => [ 'route' => '/formation', ], 'may_terminate' => true, 'child_routes' => [ 'session-parametre' => [ 'type' => Segment::class, 'options' => [ 'route' => '/session-parametre/:session', 'defaults' => [ 'controller' => SessionParametreController::class, 'action' => 'modifier', ], ], ], ], ], ], ], 'service_manager' => [ 'factories' => [ SessionParametreService::class => SessionParametreServiceFactory::class, ], ], 'controllers' => [ 'factories' => [ SessionParametreController::class => SessionParametreControllerFactory::class, ], ], 'form_elements' => [ 'factories' => [ SessionParametreForm::class => SessionParametreFormFactory::class, ], ], 'hydrators' => [ 'factories' => [ SessionParametreHydrator::class => SessionParametreHydratorFactory::class, ], ] ]; No newline at end of file module/Formation/src/Formation/Controller/SessionParametreController.php 0 → 100644 +49 −0 Original line number Diff line number Diff line <?php namespace Formation\Controller; use Formation\Entity\Db\SessionParametre; use Formation\Form\SessionParametre\SessionParametreFormAwareTrait; use Formation\Service\FormationInstance\FormationInstanceServiceAwareTrait; use Formation\Service\SessionParametre\SessionParametreServiceAwareTrait; use Laminas\Mvc\Controller\AbstractActionController; use Laminas\View\Model\ViewModel; class SessionParametreController extends AbstractActionController { use FormationInstanceServiceAwareTrait; use SessionParametreServiceAwareTrait; use SessionParametreFormAwareTrait; public function modifierAction() : ViewModel { $session = $this->getFormationInstanceService()->getRequestedFormationInstance($this, 'session'); $parametre = $session->getParametre(); if ($parametre === null) { $parametre = new SessionParametre(); $parametre = $this->getSessionParametreService()->create($parametre); $session->setParametre($parametre); $this->getFormationInstanceService()->update($session); } $form = $this->getSessionParametreForm(); $form->setAttribute('action', $this->url()->fromRoute('formation/session-parametre', ['session'=>$session->getId()], [], true)); $form->bind($parametre); $request = $this->getRequest(); if ($request->isPost()) { $data = $request->getPost(); $form->setData($data); if ($form->isValid()) { $this->getSessionParametreService()->update($parametre); } } $vm = new ViewModel([ 'title' => "Paramètre de la session de formation", 'form' => $form, ]); $vm->setTemplate('formation/default/default-form'); return $vm; } } No newline at end of file module/Formation/src/Formation/Controller/SessionParametreControllerFactory.php 0 → 100644 +37 −0 Original line number Diff line number Diff line <?php namespace Formation\Controller; use Formation\Form\SessionParametre\SessionParametreForm; use Formation\Service\FormationInstance\FormationInstanceService; use Formation\Service\SessionParametre\SessionParametreService; use Psr\Container\ContainerExceptionInterface; use Psr\Container\ContainerInterface; use Psr\Container\NotFoundExceptionInterface; class SessionParametreControllerFactory { /** * @param ContainerInterface $container * @return SessionParametreController * @throws ContainerExceptionInterface * @throws NotFoundExceptionInterface */ public function __invoke(ContainerInterface $container) : SessionParametreController { /** * @var FormationInstanceService $sessionService * @var SessionParametreService $sessionParametreService * @var SessionParametreForm $sessionParametreForm */ $sessionService = $container->get(FormationInstanceService::class); $sessionParametreService = $container->get(SessionParametreService::class); $sessionParametreForm = $container->get('FormElementManager')->get(SessionParametreForm::class); $controller = new SessionParametreController(); $controller->setFormationInstanceService($sessionService); $controller->setSessionParametreService($sessionParametreService); $controller->setSessionParametreForm($sessionParametreForm); return $controller; } } No newline at end of file module/Formation/src/Formation/Entity/Db/FormationInstance.php +18 −0 Original line number Diff line number Diff line Loading @@ -52,6 +52,8 @@ class FormationInstance implements HistoriqueAwareInterface, HasSourceInterface, /** @var ArrayCollection (Formateur) */ private $formateurs; private ?SessionParametre $parametre = null; /** * @return string */ Loading Loading @@ -446,6 +448,16 @@ class FormationInstance implements HistoriqueAwareInterface, HasSourceInterface, $this->coutTtc = $coutTtc; } public function getParametre(): ?SessionParametre { return $this->parametre; } public function setParametre(?SessionParametre $parametre): void { $this->parametre = $parametre; } /** PREDICAT D'ETAT *********************************************************************************************/ public function estPreparation() : bool Loading Loading @@ -480,6 +492,12 @@ class FormationInstance implements HistoriqueAwareInterface, HasSourceInterface, return $this->getFormation()->getLibelle(); } public function getLieuString() : string { return ($this->getLieu())?" à ".$this->getLieu():""; } public function getInstanceCode() : string { return $this->getFormation()->getId() . "/" . $this->getId(); Loading Loading
documentation/release/3.0.1.md +35 −0 Original line number Diff line number Diff line Loading @@ -19,4 +19,39 @@ alter table formation_seance add volume_fin timestamp; -- partie EVENEMENT INSERT INTO unicaen_evenement_etat (CODE, LIBELLE, DESCRIPTION) VALUES ('annule', 'Événement dont le traitement a été annulé', null); alter table unicaen_evenement_instance add mots_clefs text; -- table de parametre des sessions de formation create table formation_session_parametre ( id serial constraint formation_session_parametre_pk primary key, mail bool default true not null, evenement bool default true not null, enquete bool default true not null, histo_creation timestamp not null, histo_createur_id integer not null constraint formation_session_parametre_unicaen_utilisateur_user_null_fk_1 references unicaen_utilisateur_user (id), histo_modification timestamp, histo_modificateur_id integer constraint formation_session_parametre_unicaen_utilisateur_user_null_fk_2 references unicaen_utilisateur_user (id), histo_destruction timestamp, histo_destructeur_id integer constraint formation_session_parametre_unicaen_utilisateur_user_null_fk_3 references unicaen_utilisateur_user (id) ); comment on table formation_session_parametre is 'Table permettant de parametre le comportement d''une session'; alter table formation_instance add parametre_id integer; -- column reordering is not supported formation_instance.parametre_id alter table formation_instance add constraint formation_instance_formation_session_parametre_null_fk foreign key (parametre_id) references formation_session_parametre (id) on delete set null; ``` No newline at end of file
module/Formation/config/merged/session-parametre.config.php 0 → 100644 +80 −0 Original line number Diff line number Diff line <?php namespace Formation; use Formation\Controller\SessionParametreController; use Formation\Controller\SessionParametreControllerFactory; use Formation\Form\SessionParametre\SessionParametreForm; use Formation\Form\SessionParametre\SessionParametreFormFactory; use Formation\Form\SessionParametre\SessionParametreHydrator; use Formation\Form\SessionParametre\SessionParametreHydratorFactory; use Formation\Provider\Privilege\FormationinstancePrivileges; use Formation\Service\SessionParametre\SessionParametreService; use Formation\Service\SessionParametre\SessionParametreServiceFactory; use UnicaenPrivilege\Guard\PrivilegeController; use Laminas\Router\Http\Literal; use Laminas\Router\Http\Segment; return [ 'bjyauthorize' => [ 'guards' => [ PrivilegeController::class => [ [ 'controller' => SessionParametreController::class, 'action' => [ 'modifier', ], 'privileges' => [ FormationinstancePrivileges::FORMATIONINSTANCE_MODIFIER, ], ], ], ], ], 'router' => [ 'routes' => [ 'formation' => [ 'type' => Literal::class, 'options' => [ 'route' => '/formation', ], 'may_terminate' => true, 'child_routes' => [ 'session-parametre' => [ 'type' => Segment::class, 'options' => [ 'route' => '/session-parametre/:session', 'defaults' => [ 'controller' => SessionParametreController::class, 'action' => 'modifier', ], ], ], ], ], ], ], 'service_manager' => [ 'factories' => [ SessionParametreService::class => SessionParametreServiceFactory::class, ], ], 'controllers' => [ 'factories' => [ SessionParametreController::class => SessionParametreControllerFactory::class, ], ], 'form_elements' => [ 'factories' => [ SessionParametreForm::class => SessionParametreFormFactory::class, ], ], 'hydrators' => [ 'factories' => [ SessionParametreHydrator::class => SessionParametreHydratorFactory::class, ], ] ]; No newline at end of file
module/Formation/src/Formation/Controller/SessionParametreController.php 0 → 100644 +49 −0 Original line number Diff line number Diff line <?php namespace Formation\Controller; use Formation\Entity\Db\SessionParametre; use Formation\Form\SessionParametre\SessionParametreFormAwareTrait; use Formation\Service\FormationInstance\FormationInstanceServiceAwareTrait; use Formation\Service\SessionParametre\SessionParametreServiceAwareTrait; use Laminas\Mvc\Controller\AbstractActionController; use Laminas\View\Model\ViewModel; class SessionParametreController extends AbstractActionController { use FormationInstanceServiceAwareTrait; use SessionParametreServiceAwareTrait; use SessionParametreFormAwareTrait; public function modifierAction() : ViewModel { $session = $this->getFormationInstanceService()->getRequestedFormationInstance($this, 'session'); $parametre = $session->getParametre(); if ($parametre === null) { $parametre = new SessionParametre(); $parametre = $this->getSessionParametreService()->create($parametre); $session->setParametre($parametre); $this->getFormationInstanceService()->update($session); } $form = $this->getSessionParametreForm(); $form->setAttribute('action', $this->url()->fromRoute('formation/session-parametre', ['session'=>$session->getId()], [], true)); $form->bind($parametre); $request = $this->getRequest(); if ($request->isPost()) { $data = $request->getPost(); $form->setData($data); if ($form->isValid()) { $this->getSessionParametreService()->update($parametre); } } $vm = new ViewModel([ 'title' => "Paramètre de la session de formation", 'form' => $form, ]); $vm->setTemplate('formation/default/default-form'); return $vm; } } No newline at end of file
module/Formation/src/Formation/Controller/SessionParametreControllerFactory.php 0 → 100644 +37 −0 Original line number Diff line number Diff line <?php namespace Formation\Controller; use Formation\Form\SessionParametre\SessionParametreForm; use Formation\Service\FormationInstance\FormationInstanceService; use Formation\Service\SessionParametre\SessionParametreService; use Psr\Container\ContainerExceptionInterface; use Psr\Container\ContainerInterface; use Psr\Container\NotFoundExceptionInterface; class SessionParametreControllerFactory { /** * @param ContainerInterface $container * @return SessionParametreController * @throws ContainerExceptionInterface * @throws NotFoundExceptionInterface */ public function __invoke(ContainerInterface $container) : SessionParametreController { /** * @var FormationInstanceService $sessionService * @var SessionParametreService $sessionParametreService * @var SessionParametreForm $sessionParametreForm */ $sessionService = $container->get(FormationInstanceService::class); $sessionParametreService = $container->get(SessionParametreService::class); $sessionParametreForm = $container->get('FormElementManager')->get(SessionParametreForm::class); $controller = new SessionParametreController(); $controller->setFormationInstanceService($sessionService); $controller->setSessionParametreService($sessionParametreService); $controller->setSessionParametreForm($sessionParametreForm); return $controller; } } No newline at end of file
module/Formation/src/Formation/Entity/Db/FormationInstance.php +18 −0 Original line number Diff line number Diff line Loading @@ -52,6 +52,8 @@ class FormationInstance implements HistoriqueAwareInterface, HasSourceInterface, /** @var ArrayCollection (Formateur) */ private $formateurs; private ?SessionParametre $parametre = null; /** * @return string */ Loading Loading @@ -446,6 +448,16 @@ class FormationInstance implements HistoriqueAwareInterface, HasSourceInterface, $this->coutTtc = $coutTtc; } public function getParametre(): ?SessionParametre { return $this->parametre; } public function setParametre(?SessionParametre $parametre): void { $this->parametre = $parametre; } /** PREDICAT D'ETAT *********************************************************************************************/ public function estPreparation() : bool Loading Loading @@ -480,6 +492,12 @@ class FormationInstance implements HistoriqueAwareInterface, HasSourceInterface, return $this->getFormation()->getLibelle(); } public function getLieuString() : string { return ($this->getLieu())?" à ".$this->getLieu():""; } public function getInstanceCode() : string { return $this->getFormation()->getId() . "/" . $this->getId(); Loading