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

WIP

parent 24bedb77
Loading
Loading
Loading
Loading
+7 −30
Original line number Diff line number Diff line
<?php

use Application\Event\RgpdRenderer\RgpdRendererEvenement;
use Application\Provider\EvenementProvider;
use Application\Provider\EvenementProvider as ApplicationEvenementProvider;
use Application\Service\Evenement\SynchroOctopusService;
use EntretienProfessionnel\Provider\Event\EvenementProvider as EntretienProfessionnelEvenementProvider;
use EntretienProfessionnel\Service\Evenement\RappelCampagneAvancementAutoriteService;
use EntretienProfessionnel\Service\Evenement\RappelCampagneAvancementSuperieurService;
use EntretienProfessionnel\Service\Evenement\RappelEntretienProfessionnelService;
use EntretienProfessionnel\Service\Evenement\RappelPasObservationService;
use Atelier\Event\Convocation\ConvocationEvent;
use Atelier\Event\DemandeRetour\DemandeRetourEvent;
use Atelier\Event\InscriptionCloture\InscriptionClotureEvent;
use Atelier\Event\SessionCloture\SessionClotureEvent;
use Atelier\Provider\Event\EvenementProvider as FormationEvenementProvider;
use Atelier\Service\Evenement\NotificationFormationsOuvertesService;
use Atelier\Service\Evenement\RappelAgentAvantFormationService;
use Atelier\Event\CloturerSession\CloturerSessionEvenement;
use Atelier\Event\ConvoquerSession\ConvoquerSessionEvenement;
use Atelier\Event\RetourSession\RetourSessionEvenement;
use Atelier\Provider\Evenement\SessionEvenements;
use UnicaenEvenement\Entity\Db\Type;
use UnicaenEvenement\Service\EvenementCollection\EvenementCollectionService;

@@ -25,20 +13,9 @@ return [
            // Évènements de base
            Type::COLLECTION => EvenementCollectionService::class,

//            ApplicationEvenementProvider::SYNCHRO_OCTOPUS => SynchroOctopusService::class,
//            EvenementProvider::RGPD_UNICAEN_RENDERER => RgpdRendererEvenement::class,

//            FormationEvenementProvider::NOTIFICATION_FORMATION_OUVERTE => NotificationFormationsOuvertesService::class,
//            FormationEvenementProvider::RAPPEL_FORMATION_AGENT_AVANT => RappelAgentAvantFormationService::class,
//            FormationEvenementProvider::INSCRIPTION_CLOTURE => InscriptionClotureEvent::class,
//            FormationEvenementProvider::CONVOCATION => ConvocationEvent::class,
//            FormationEvenementProvider::DEMANDE_RETOUR => DemandeRetourEvent::class,
//            FormationEvenementProvider::SESSION_CLOTURE => SessionClotureEvent::class,

//            EntretienProfessionnelEvenementProvider::RAPPEL_CAMPAGNE_AVANCEMENT_AUTORITE => RappelCampagneAvancementAutoriteService::class,
//            EntretienProfessionnelEvenementProvider::RAPPEL_CAMPAGNE_AVANCEMENT_SUPERIEUR => RappelCampagneAvancementSuperieurService::class,
//            EntretienProfessionnelEvenementProvider::RAPPEL_ENTRETIEN_PROFESSIONNEL => RappelEntretienProfessionnelService::class,
//            EntretienProfessionnelEvenementProvider::RAPPEL_PAS_OBSERVATION_ENTRETIEN_PROFESSIONNEL => RappelPasObservationService::class,
            SessionEvenements::CONVOQUER_EVENEMENT => ConvoquerSessionEvenement::class,
            SessionEvenements::RETOUR_EVENEMENT => RetourSessionEvenement::class,
            SessionEvenements::CLOTURER_EVENEMENT => CloturerSessionEvenement::class,
        ],

        'icone' => [
+11 −0
Original line number Diff line number Diff line
@@ -4,6 +4,12 @@ use Atelier\Assertion\SessionAssertion;
use Atelier\Assertion\SessionAssertionFactory;
use Atelier\Controller\SessionController;
use Atelier\Controller\SessionControllerFactory;
use Atelier\Event\CloturerSession\CloturerSessionEvenement;
use Atelier\Event\CloturerSession\CloturerSessionEvenementFactory;
use Atelier\Event\ConvoquerSession\ConvoquerSessionEvenement;
use Atelier\Event\ConvoquerSession\ConvoquerSessionEvenementFactory;
use Atelier\Event\RetourSession\RetourSessionEvenement;
use Atelier\Event\RetourSession\RetourSessionEvenementFactory;
use Atelier\Form\Session\SessionForm;
use Atelier\Form\Session\SessionFormFactory;
use Atelier\Form\Session\SessionHydrator;
@@ -449,6 +455,11 @@ return [
        'factories' => [
            SessionAssertion::class => SessionAssertionFactory::class,
            SessionService::class => SessionServiceFactory::class,

            //Evenement
            RetourSessionEvenement::class => RetourSessionEvenementFactory::class,
            CloturerSessionEvenement::class => CloturerSessionEvenementFactory::class,
            ConvoquerSessionEvenement::class => ConvoquerSessionEvenementFactory::class,
        ],
    ],
    'form_elements' => [
+16 −2
Original line number Diff line number Diff line
@@ -10,10 +10,15 @@ use Atelier\Service\Session\SessionServiceAwareTrait;
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 UnicaenEvenement\Service\Evenement\EvenementServiceAwareTrait;

/** @method FlashMessenger flashMessenger() */

class SeanceController extends AbstractActionController
{
    use EvenementServiceAwareTrait;
    use SessionServiceAwareTrait;
    use SeanceServiceAwareTrait;
    use SeanceFormAwareTrait;
@@ -38,7 +43,7 @@ class SeanceController extends AbstractActionController
            $form->setData($data);
            if ($form->isValid()) {
                $this->getSeanceService()->create($seance);

                $this->getSeanceService()->gererEvenement($seance, $this->flashMessenger());
            }
        }

@@ -65,6 +70,7 @@ class SeanceController extends AbstractActionController
            $form->setData($data);
            if ($form->isValid()) {
                $this->getSeanceService()->update($seance);
                $this->getSeanceService()->gererEvenement($seance, $this->flashMessenger());
            }
        }

@@ -81,6 +87,8 @@ class SeanceController extends AbstractActionController
    {
        $seance = $this->getSeanceService()->getRequestedSeance($this);
        $this->getSeanceService()->historise($seance);
        $this->getSeanceService()->gererEvenement($seance, $this->flashMessenger());

        return $this->redirect()->toRoute('atelier/session/afficher', ['session' => $seance->getSession()->getId()], [], true);
    }

@@ -88,6 +96,8 @@ class SeanceController extends AbstractActionController
    {
        $seance = $this->getSeanceService()->getRequestedSeance($this);
        $this->getSeanceService()->restore($seance);
        $this->getSeanceService()->gererEvenement($seance, $this->flashMessenger());

        return $this->redirect()->toRoute('atelier/session/afficher', ['session' => $seance->getSession()->getId()], [], true);
    }

@@ -99,7 +109,11 @@ class SeanceController extends AbstractActionController
        $request = $this->getRequest();
        if ($request->isPost()) {
            $data = $request->getPost();
            if ($data["reponse"] === "oui") $this->getSeanceService()->delete($seance);
            if ($data["reponse"] === "oui") {
                $this->getSeanceService()->delete($seance);
                if ($seance->estNonHistorise()) $this->getSeanceService()->gererEvenement($seance, $this->flashMessenger());
            }

            exit();
        }

+4 −0
Original line number Diff line number Diff line
@@ -9,6 +9,7 @@ use Atelier\Service\Session\SessionService;
use Interop\Container\ContainerInterface;
use Psr\Container\ContainerExceptionInterface;
use Psr\Container\NotFoundExceptionInterface;
use UnicaenEvenement\Service\Evenement\EvenementService;

class SeanceControllerFactory
{
@@ -22,17 +23,20 @@ class SeanceControllerFactory
    public function __invoke(ContainerInterface $container): SeanceController
    {
        /**
         * @var EvenementService $evenementService
         * @var SessionService $sessionService
         * @var SeanceService $seanceService
         * @var SeanceForm $seanceForm
         * @var SeanceRecurrenteForm $recurrenteForm
         */
        $evenementService = $container->get(EvenementService::class);
        $sessionService = $container->get(SessionService::class);
        $seanceService = $container->get(SeanceService::class);
        $seanceForm = $container->get('FormElementManager')->get(SeanceForm::class);
        $recurrenteForm = $container->get('FormElementManager')->get(SeanceRecurrenteForm::class);

        $controller = new SeanceController();
        $controller->setEvenementService($evenementService);
        $controller->setSessionService($sessionService);
        $controller->setSeanceService($seanceService);
        $controller->setSeanceForm($seanceForm);
+11 −0
Original line number Diff line number Diff line
@@ -39,6 +39,17 @@
            </join-table>
        </many-to-many>

        <many-to-many field="evenements" target-entity="UnicaenEvenement\Entity\Db\Evenement">
            <join-table name="atelier_session_evenement">
                <join-columns>
                    <join-column name="session_id" referenced-column-name="id" />
                </join-columns>
                <inverse-join-columns>
                    <join-column name="evenement_instance_id" referenced-column-name="ID" />
                </inverse-join-columns>
            </join-table>
        </many-to-many>

        <one-to-many field="seances"       target-entity="Atelier\Entity\Db\Seance"    mapped-by="session"/>
        <one-to-many field="inscriptions"   target-entity="Atelier\Entity\Db\Inscription"    mapped-by="session"/>

Loading