Commit d5b54418 authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

Début de transfert des formations dans module a part : Journee, Formateur

parent e87b7149
Loading
Loading
Loading
Loading
+0 −130
Original line number Diff line number Diff line
@@ -24,14 +24,6 @@ use Application\Form\FormationInstance\FormationInstanceForm;
use Application\Form\FormationInstance\FormationInstanceFormFactory;
use Application\Form\FormationInstance\FormationInstanceHydrator;
use Application\Form\FormationInstance\FormationInstanceHydratorFactory;
use Application\Form\FormationInstanceFormateur\FormationInstanceFormateurForm;
use Application\Form\FormationInstanceFormateur\FormationInstanceFormateurFormFactory;
use Application\Form\FormationInstanceFormateur\FormationInstanceFormateurHydrator;
use Application\Form\FormationInstanceFormateur\FormationInstanceFormateurHydratorFactory;
use Application\Form\FormationJournee\FormationJourneeForm;
use Application\Form\FormationJournee\FormationJourneeFormFactory;
use Application\Form\FormationJournee\FormationJourneeHydrator;
use Application\Form\FormationJournee\FormationJourneeHydratorFactory;
use Application\Form\SelectionFormation\SelectionFormationForm;
use Application\Form\SelectionFormation\SelectionFormationFormFactory;
use Application\Form\SelectionFormation\SelectionFormationHydrator;
@@ -42,12 +34,8 @@ use Application\Service\Formation\FormationService;
use Application\Service\Formation\FormationServiceFactory;
use Application\Service\Formation\FormationThemeService;
use Application\Service\Formation\FormationThemeServiceFactory;
use Application\Service\FormationInstance\FormationInstanceFormateurService;
use Application\Service\FormationInstance\FormationInstanceFormateurServiceFactory;
use Application\Service\FormationInstance\FormationInstanceInscritService;
use Application\Service\FormationInstance\FormationInstanceInscritServiceFactory;
use Application\Service\FormationInstance\FormationInstanceJourneeService;
use Application\Service\FormationInstance\FormationInstanceJourneeServiceFactory;
use Application\Service\FormationInstance\FormationInstanceService;
use Application\Service\FormationInstance\FormationInstanceServiceFactory;
use UnicaenPrivilege\Guard\PrivilegeController;
@@ -172,18 +160,6 @@ return [
                    'action' => [
                        'modifier-informations',

                        'ajouter-journee',
                        'modifier-journee',
                        'historiser-journee',
                        'restaurer-journee',
                        'supprimer-journee',

                        'ajouter-formateur',
                        'modifier-formateur',
                        'historiser-formateur',
                        'restaurer-formateur',
                        'supprimer-formateur',

                        'ajouter-agent',
                        'historiser-agent',
                        'restaurer-agent',
@@ -344,106 +320,6 @@ return [
                            ],
                        ],
                    ],
                    'ajouter-journee' => [
                        'type'  => Segment::class,
                        'options' => [
                            'route'    => '/ajouter-journee/:formation-instance',
                            'defaults' => [
                                'controller' => FormationInstanceController::class,
                                'action'     => 'ajouter-journee',
                            ],
                        ],
                    ],
                    'modifier-journee' => [
                        'type'  => Segment::class,
                        'options' => [
                            'route'    => '/modifier-journee/:journee',
                            'defaults' => [
                                'controller' => FormationInstanceController::class,
                                'action'     => 'modifier-journee',
                            ],
                        ],
                    ],
                    'historiser-journee' => [
                        'type'  => Segment::class,
                        'options' => [
                            'route'    => '/historiser-journee/:journee',
                            'defaults' => [
                                'controller' => FormationInstanceController::class,
                                'action'     => 'historiser-journee',
                            ],
                        ],
                    ],
                    'restaurer-journee' => [
                        'type'  => Segment::class,
                        'options' => [
                            'route'    => '/restaurer-journee/:journee',
                            'defaults' => [
                                'controller' => FormationInstanceController::class,
                                'action'     => 'restaurer-journee',
                            ],
                        ],
                    ],
                    'supprimer-journee' => [
                        'type'  => Segment::class,
                        'options' => [
                            'route'    => '/supprimer-journee/:journee',
                            'defaults' => [
                                'controller' => FormationInstanceController::class,
                                'action'     => 'supprimer-journee',
                            ],
                        ],
                    ],
                    'ajouter-formateur' => [
                        'type'  => Segment::class,
                        'options' => [
                            'route'    => '/ajouter-formateur/:formation-instance',
                            'defaults' => [
                                'controller' => FormationInstanceController::class,
                                'action'     => 'ajouter-formateur',
                            ],
                        ],
                    ],
                    'modifier-formateur' => [
                        'type'  => Segment::class,
                        'options' => [
                            'route'    => '/modifier-formateur/:formateur',
                            'defaults' => [
                                'controller' => FormationInstanceController::class,
                                'action'     => 'modifier-formateur',
                            ],
                        ],
                    ],
                    'historiser-formateur' => [
                        'type'  => Segment::class,
                        'options' => [
                            'route'    => '/historiser-journee/:formateur',
                            'defaults' => [
                                'controller' => FormationInstanceController::class,
                                'action'     => 'historiser-formateur',
                            ],
                        ],
                    ],
                    'restaurer-formateur' => [
                        'type'  => Segment::class,
                        'options' => [
                            'route'    => '/restaurer-formateur/:formateur',
                            'defaults' => [
                                'controller' => FormationInstanceController::class,
                                'action'     => 'restaurer-formateur',
                            ],
                        ],
                    ],
                    'supprimer-formateur' => [
                        'type'  => Segment::class,
                        'options' => [
                            'route'    => '/supprimer-formateur/:formateur',
                            'defaults' => [
                                'controller' => FormationInstanceController::class,
                                'action'     => 'supprimer-formateur',
                            ],
                        ],
                    ],
                    'export-emargement' => [
                        'type'  => Segment::class,
                        'options' => [
@@ -761,8 +637,6 @@ return [
            FormationService::class => FormationServiceFactory::class,
            FormationInstanceService::class => FormationInstanceServiceFactory::class,
            FormationInstanceInscritService::class => FormationInstanceInscritServiceFactory::class,
            FormationInstanceJourneeService::class => FormationInstanceJourneeServiceFactory::class,
            FormationInstanceFormateurService::class => FormationInstanceFormateurServiceFactory::class,
            FormationGroupeService::class => FormationGroupeServiceFactory::class,
            FormationThemeService::class => FormationThemeServiceFactory::class,
            FormationInstanceInscritAssertion::class => FormationInstanceInscritAssertionFactory::class,
@@ -780,8 +654,6 @@ return [
            FormationForm::class => FormationFormFactory::class,
            FormationGroupeForm::class => FormationGroupeFormFactory::class,
            FormationInstanceForm::class => FormationInstanceFormFactory::class,
            FormationInstanceFormateurForm::class => FormationInstanceFormateurFormFactory::class,
            FormationJourneeForm::class => FormationJourneeFormFactory::class,
            SelectionFormationForm::class => SelectionFormationFormFactory::class,
        ],
    ],
@@ -794,8 +666,6 @@ return [
            FormationHydrator::class => FormationHydratorFactory::class,
            FormationGroupeHydrator::class => FormationGroupeHydratorFactory::class,
            FormationInstanceHydrator::class => FormationInstanceHydratorFactory::class,
            FormationInstanceFormateurHydrator::class => FormationInstanceFormateurHydratorFactory::class,
            FormationJourneeHydrator::class => FormationJourneeHydratorFactory::class,
        ],
    ],
    'view_helpers' => [
+5 −195
Original line number Diff line number Diff line
@@ -3,20 +3,18 @@
namespace Application\Controller;

use Application\Entity\Db\FormationInstance;
use Application\Entity\Db\FormationInstanceFormateur;
use Application\Entity\Db\FormationInstanceInscrit;
use Application\Entity\Db\FormationInstanceJournee;
use Formation\Entity\Db\FormationInstanceJournee;
use Application\Form\FormationInstance\FormationInstanceFormAwareTrait;
use Application\Form\FormationInstanceFormateur\FormationInstanceFormateurFormAwareTrait;
use Application\Form\FormationJournee\FormationJourneeFormAwareTrait;
use Formation\Form\FormationJournee\FormationJourneeFormAwareTrait;
use Application\Form\SelectionAgent\SelectionAgentFormAwareTrait;
use Application\Service\Export\Formation\Emargement\EmargementPdfExporter;
use Application\Service\Formation\FormationServiceAwareTrait;
use Application\Service\FormationInstance\FormationInstanceFormateurServiceAwareTrait;
use Application\Service\FormationInstance\FormationInstanceInscritServiceAwareTrait;
use Application\Service\FormationInstance\FormationInstanceJourneeServiceAwareTrait;
use Application\Service\FormationInstance\FormationInstanceServiceAwareTrait;
use Autoform\Service\Formulaire\FormulaireInstanceServiceAwareTrait;
use Formation\Service\FormationInstanceFormateur\FormationInstanceFormateurServiceAwareTrait;
use Formation\Service\FormationInstanceJournee\FormationInstanceJourneeServiceAwareTrait;
use Formation\Service\FormationInstancePresence\FormationInstancePresenceAwareTrait;
use Mpdf\MpdfException;
use UnicaenApp\Exception\RuntimeException;
@@ -31,14 +29,13 @@ use Zend\View\Model\ViewModel;
class FormationInstanceController extends AbstractActionController {
    use FormationServiceAwareTrait;
    use FormationInstanceServiceAwareTrait;
    use FormationInstanceFormateurServiceAwareTrait;
    use FormationInstanceInscritServiceAwareTrait;
    use FormationInstanceJourneeServiceAwareTrait;
    use FormationInstanceFormateurServiceAwareTrait;
    use FormationInstancePresenceAwareTrait;
    use FormulaireInstanceServiceAwareTrait;
    use FormationInstanceFormAwareTrait;
    use FormationJourneeFormAwareTrait;
    use FormationInstanceFormateurFormAwareTrait;
    use SelectionAgentFormAwareTrait;
    use ExporterServiceAwareTrait;

@@ -147,193 +144,6 @@ class FormationInstanceController extends AbstractActionController {
        return $vm;
    }

    /** FORMATEUR ******************************************************************************************/

    public function ajouterFormateurAction()
    {
        $instance = $this->getFormationInstanceService()->getRequestedFormationInstance($this);

        $formateur = new FormationInstanceFormateur();
        $formateur->setInstance($instance);

        $form = $this->getFormationInstanceFormateurForm();
        $form->setAttribute('action', $this->url()->fromRoute('formation-instance/ajouter-formateur', ['formation-instance' => $instance->getId()], [], true));
        $form->bind($formateur);

        $request = $this->getRequest();
        if ($request->isPost()) {
            $data = $request->getPost();
            $form->setData($data);
            if ($form->isValid()) {
                $this->getFormationInstanceFormateurService()->create($formateur);
            }
        }

        $vm = new ViewModel();
        $vm->setTemplate('application/default/default-form');
        $vm->setVariables([
            'title' => "Ajout d'un formateur de formation",
            'form' => $form,
        ]);
        return $vm;
    }

    public function modifierFormateurAction() {
        $formateur = $this->getFormationInstanceFormateurService()->getRequestedFormationInstanceFormateur($this);

        $form = $this->getFormationInstanceFormateurForm();
        $form->setAttribute('action', $this->url()->fromRoute('formation-instance/modifier-formateur', ['formateur' => $formateur->getId()], [], true));
        $form->bind($formateur);

        $request = $this->getRequest();
        if ($request->isPost()) {
            $data = $request->getPost();
            $form->setData($data);
            if ($form->isValid()) {
                $this->getFormationInstanceFormateurService()->update($formateur);
            }
        }

        $vm = new ViewModel();
        $vm->setTemplate('application/default/default-form');
        $vm->setVariables([
            'title' => "Modification d'un formateur de formation",
            'form' => $form,
        ]);
        return $vm;
    }

    public function historiserFormateurAction()
    {
        $formateur = $this->getFormationInstanceFormateurService()->getRequestedFormationInstanceFormateur($this);
        $this->getFormationInstanceFormateurService()->historise($formateur);
        return $this->redirect()->toRoute('formation-instance/afficher', ['formation-instance' => $formateur->getInstance()->getId()], [], true);
    }

    public function restaurerFormateurAction()
    {
        $formateur = $this->getFormationInstanceFormateurService()->getRequestedFormationInstanceFormateur($this);
        $this->getFormationInstanceFormateurService()->restore($formateur);
        return $this->redirect()->toRoute('formation-instance/afficher', ['formation-instance' => $formateur->getInstance()->getId()], [], true);
    }

    public function supprimerFormateurAction()
    {
        $formateur = $this->getFormationInstanceFormateurService()->getRequestedFormationInstanceFormateur($this);

        /** @var Request $request */
        $request = $this->getRequest();
        if ($request->isPost()) {
            $data = $request->getPost();
            if ($data["reponse"] === "oui") $this->getFormationInstanceFormateurService()->delete($formateur);
            exit();
        }

        $vm = new ViewModel();
        if ($formateur !== null) {
            $vm->setTemplate('application/default/confirmation');
            $vm->setVariables([
                'title' => "Suppression du formateur de formation du [" . $formateur->getPrenom() . " ". $formateur->getNom() . "]",
                'text' => "La suppression est définitive êtes-vous sûr·e de vouloir continuer ?",
                'action' => $this->url()->fromRoute('formation-instance/supprimer-formateur', ["formateur" => $formateur->getId()], [], true),
            ]);
        }
        return $vm;
    }

    /** JOURNEE ********************************************************************************************/

    public function ajouterJourneeAction() {
        $instance = $this->getFormationInstanceService()->getRequestedFormationInstance($this);

        $journee = new FormationInstanceJournee();
        $journee->setInstance($instance);

        $form = $this->getFormationJourneeForm();
        $form->setAttribute('action', $this->url()->fromRoute('formation-instance/ajouter-journee', ['formation-instance' => $instance->getId()], [], true));
        $form->bind($journee);

        $request = $this->getRequest();
        if ($request->isPost()) {
            $data = $request->getPost();
            $form->setData($data);
            if ($form->isValid()) {
                $this->getFormationInstanceJourneeService()->create($journee);
            }
        }

        $vm = new ViewModel();
        $vm->setTemplate('application/default/default-form');
        $vm->setVariables([
           'title' => "Ajout d'une journée de formation",
           'form' => $form,
        ]);
        return $vm;
    }

    public function modifierJourneeAction() {
        $journee = $this->getFormationInstanceJourneeService()->getRequestedFormationInstanceJournee($this);

        $form = $this->getFormationJourneeForm();
        $form->setAttribute('action', $this->url()->fromRoute('formation-instance/modifier-journee', ['journee' => $journee->getId()], [], true));
        $form->bind($journee);

        $request = $this->getRequest();
        if ($request->isPost()) {
            $data = $request->getPost();
            $form->setData($data);
            if ($form->isValid()) {
                $this->getFormationInstanceJourneeService()->update($journee);
            }
        }

        $vm = new ViewModel();
        $vm->setTemplate('application/default/default-form');
        $vm->setVariables([
            'title' => "Modification d'une journée de formation",
            'form' => $form,
        ]);
        return $vm;
    }

    public function historiserJourneeAction()
    {
        $journee = $this->getFormationInstanceJourneeService()->getRequestedFormationInstanceJournee($this);
        $this->getFormationInstanceJourneeService()->historise($journee);
        return $this->redirect()->toRoute('formation-instance/afficher', ['formation-instance' => $journee->getInstance()->getId()], [], true);
    }

    public function restaurerJourneeAction()
    {
        $journee = $this->getFormationInstanceJourneeService()->getRequestedFormationInstanceJournee($this);
        $this->getFormationInstanceJourneeService()->restore($journee);
        return $this->redirect()->toRoute('formation-instance/afficher', ['formation-instance' => $journee->getInstance()->getId()], [], true);
    }

    public function supprimerJourneeAction()
    {
        $journee = $this->getFormationInstanceJourneeService()->getRequestedFormationInstanceJournee($this);

        /** @var Request $request */
        $request = $this->getRequest();
        if ($request->isPost()) {
            $data = $request->getPost();
            if ($data["reponse"] === "oui") $this->getFormationInstanceJourneeService()->delete($journee);
            exit();
        }

        $vm = new ViewModel();
        if ($journee !== null) {
            $vm->setTemplate('application/default/confirmation');
            $vm->setVariables([
                'title' => "Suppression de la journée de formation du [" . $journee->getJour() . "]",
                'text' => "La suppression est définitive êtes-vous sûr·e de vouloir continuer ?",
                'action' => $this->url()->fromRoute('formation-instance/supprimer-journee', ["journee" => $journee->getId()], [], true),
            ]);
        }
        return $vm;
    }

    public function exportEmargementAction()
    {
        $journee = $this->getFormationInstanceJourneeService()->getRequestedFormationInstanceJournee($this);
+3 −7
Original line number Diff line number Diff line
@@ -3,15 +3,14 @@
namespace Application\Controller;

use Application\Form\FormationInstance\FormationInstanceForm;
use Application\Form\FormationInstanceFormateur\FormationInstanceFormateurForm;
use Application\Form\FormationJournee\FormationJourneeForm;
use Formation\Form\FormationJournee\FormationJourneeForm;
use Application\Form\SelectionAgent\SelectionAgentForm;
use Application\Service\Formation\FormationService;
use Application\Service\FormationInstance\FormationInstanceFormateurService;
use Application\Service\FormationInstance\FormationInstanceInscritService;
use Application\Service\FormationInstance\FormationInstanceJourneeService;
use Application\Service\FormationInstance\FormationInstanceService;
use Autoform\Service\Formulaire\FormulaireInstanceService;
use Formation\Service\FormationInstanceJournee\FormationInstanceJourneeService;
use Formation\Service\FormationInstanceFormateur\FormationInstanceFormateurService;
use Formation\Service\FormationInstancePresence\FormationInstancePresenceService;
use Interop\Container\ContainerInterface;
use UnicaenDocument\Service\Exporter\ExporterService;
@@ -47,12 +46,10 @@ class FormationInstanceControllerFactory {
        /**
         * @var FormationInstanceForm $formationInstanceForm
         * @var FormationJourneeForm $formationJourneeForm
         * @var FormationInstanceFormateurForm $formationFormateurForm
         * @var SelectionAgentForm $selectionAgentForm
         */
        $formationInstanceForm = $container->get('FormElementManager')->get(FormationInstanceForm::class);
        $formationJourneeForm = $container->get('FormElementManager')->get(FormationJourneeForm::class);
        $formationFormateurForm = $container->get('FormElementManager')->get(FormationInstanceFormateurForm::class);
        $selectionAgentForm = $container->get('FormElementManager')->get(SelectionAgentForm::class);

        /* @var PhpRenderer $renderer  */
@@ -71,7 +68,6 @@ class FormationInstanceControllerFactory {
        $controller->setExporterService($exporterService);
        $controller->setFormationInstanceForm($formationInstanceForm);
        $controller->setFormationJourneeForm($formationJourneeForm);
        $controller->setFormationInstanceFormateurForm($formationFormateurForm);
        $controller->setSelectionAgentForm($selectionAgentForm);
        return $controller;
    }
+2 −0
Original line number Diff line number Diff line
@@ -4,6 +4,8 @@ namespace Application\Entity\Db;

use DateTime;
use Doctrine\Common\Collections\ArrayCollection;
use Formation\Entity\Db\FormationInstanceFormateur;
use Formation\Entity\Db\FormationInstanceJournee;
use UnicaenEtat\Entity\Db\Etat;
use UnicaenUtilisateur\Entity\HistoriqueAwareInterface;
use UnicaenUtilisateur\Entity\HistoriqueAwareTrait;
+2 −2
Original line number Diff line number Diff line
@@ -19,9 +19,9 @@
            <join-column name="etat_id" referenced-column-name="id"/>
        </many-to-one>

        <one-to-many field="journees"   target-entity="Application\Entity\Db\FormationInstanceJournee"    mapped-by="instance"/>
        <one-to-many field="journees"   target-entity="Formation\Entity\Db\FormationInstanceJournee"    mapped-by="instance"/>
        <one-to-many field="inscrits"   target-entity="Application\Entity\Db\FormationInstanceInscrit"    mapped-by="instance"/>
        <one-to-many field="formateurs" target-entity="Application\Entity\Db\FormationInstanceFormateur"  mapped-by="instance"/>
        <one-to-many field="formateurs" target-entity="Formation\Entity\Db\FormationInstanceFormateur"    mapped-by="instance"/>

        <field name="histoCreation"     type="datetime"                 column="histo_creation"     nullable="false"/>
        <field name="histoModification" type="datetime"                 column="histo_modification" nullable="false"/>
Loading