Commit 5f2c898b authored by Johnny Leveneur's avatar Johnny Leveneur
Browse files

ajout de filtres sur la gestion des participants

parent d326076a
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -5,3 +5,4 @@ composer.lock
.DS_Store
node_modules/
!public/*
.aiassistant/
+7 −1
Original line number Diff line number Diff line
@@ -24,7 +24,13 @@ class EtudiantControllerFactory
    public function __invoke(ContainerInterface $container): EtudiantController
    {
        /**
         * @see ParametreService $parametreService
         * @var AnneeUnivIAService $anneeUnivIAService
         * @var ComposanteIAService $composanteIAService
         * @var EtablissementIAService $etablissementIAService
         * @var EtudiantService $etudiantService
         * @var CycleIAService $cycleIAService
         * @var EtablissementService $etablissementService
         * @var ParametreService $parametreService
         */
        $anneeUnivIAService = $container->get(AnneeUnivIAService::class);
        $composanteIAService = $container->get(ComposanteIAService::class);
+10 −10
Original line number Diff line number Diff line
@@ -21,9 +21,9 @@ use UnicaenApp\Form\Element\SearchAndSelect;
    <div class="card-body">

        <form id="filtre" action="<?php echo $this->url(); ?>" method="get">
            <div class="row">
                <div class="col-md-3">
                    <label for="annee"> Année : </label>
            <div class="row g-3 align-items-en">
                <div class="col-12 col-md-6 col-xl-3">
                    <label for="annee"> Année Universitaire : </label>
                    <select id="annee" name="annee" class="selectpicker" data-live-search="true">
                        <option value="">Toutes les années</option>
                        <?php foreach ($anneeUnivIAasOptions as $key => $annee): ?>
@@ -35,7 +35,7 @@ use UnicaenApp\Form\Element\SearchAndSelect;
                        <?php endforeach; ?>
                    </select>
                </div>
                <div class="col-md-3">
                <div class="col-12 col-md-6 col-xl-3">
                    <label for="etablissement"> Etablissement : </label>
                    <select id="etablissement" name="etablissement" class="selectpicker" data-live-search="true">
                        <option value="">Tous les établissements</option>
@@ -48,7 +48,7 @@ use UnicaenApp\Form\Element\SearchAndSelect;
                        <?php endforeach; ?>
                    </select>
                </div>
                <div class="col-md-3">
                <div class="col-12 col-md-6 col-xl-3">
                    <label for="composante"> Composante : </label>
                    <select id="composante" name="composante" class="selectpicker" data-live-search="true">
                        <option value="">Toutes les composantes</option>
@@ -61,7 +61,7 @@ use UnicaenApp\Form\Element\SearchAndSelect;
                        <?php endforeach; ?>
                    </select>
                </div>
                <div class="col-md-3">
                <div class="col-12 col-md-6 col-xl-3">
                    <label for="cycle"> Cycle : </label>
                    <select id="cycle" name="cycle" class="selectpicker" data-live-search="true">
                        <option value="">Tous les cycles</option>
@@ -76,8 +76,8 @@ use UnicaenApp\Form\Element\SearchAndSelect;
                </div>
            </div>
            <br/>
            <div class="row">
                <div class="col-md-3">
            <div class="row g-3 align-items-en">
                <div class="col-12 col-md-6 col-xl-3">
                    <label for="intervenant"> Étudiant·e : </label>
                    <?php
                    /** @see  \Etudiant\Controller\EtudiantController::rechercherAction() */
@@ -93,8 +93,8 @@ use UnicaenApp\Form\Element\SearchAndSelect;
                    <?php echo $this->formControlGroup($etudiantF); ?>
                </div>
                <!-- BOUTON -->
                <div class="col-md-3">
                    <div class="pull-right">
                <div class="col-12 col-md-6 col-xl-3">
                    <div class="d-grid gap-2 d-sm-flex justify-content-sm-end">
                        <button class="btn btn-primary" id="clear">
                            <span class="icon icon-gommer"></span>
                            R.A.Z.
+67 −3
Original line number Diff line number Diff line
@@ -2,6 +2,9 @@

namespace Evenementiel\Controller;

use Etudiant\Service\AnneeUnivIA\AnneeUnivIAServiceAwareTrait;
use Etudiant\Service\ComposanteIA\ComposanteIAServiceAwareTrait;
use Etudiant\Service\EtablissementIA\EtablissementIAServiceAwareTrait;
use Etudiant\Service\Etudiant\EtudiantServiceAwareTrait;
use Evenementiel\Entity\Db\Participant;
use Evenementiel\Form\Participant\EtudiantFormAwareTrait;
@@ -21,6 +24,9 @@ class ParticipantController extends AbstractActionController
    use ParticipantServiceAwareTrait, ParticipantFormAwareTrait;
    use EtudiantFormAwareTrait;
    use EtudiantServiceAwareTrait;
    use AnneeUnivIAServiceAwareTrait;
    use ComposanteIAServiceAwareTrait;
    use EtablissementIAServiceAwareTrait;
    use PersonnelFormAwareTrait;
    use PersonnelServiceAwareTrait;

@@ -31,9 +37,68 @@ class ParticipantController extends AbstractActionController
     */
    public function indexAction(): ViewModel
    {
        $entities = $this->getParticipantService()->getEntities();
        $anneeUnivIAasOptions = $this->getAnneeUnivIAService()->getAnneeUnivIAasOptions();
        $etablissementIAasOptions = $this->getEtablissementIAService()->getEtablissementIAasOptions();
        $composanteIAasOptions = $this->getComposanteIAService()->getComposanteIAasOptions();
        $typeParticipantAsOptions = Participant::getTypesParticipant();

        $paramsQuery = $this->params()->fromQuery();

        $paramsFiltre = null;
        $isEtudiant = null;
        if (array_key_exists('annee', $paramsQuery)) {
            $anneeUniv = $paramsQuery['annee'] ? $this->getAnneeUnivIAService()->getAnneeUnivIA($paramsQuery['annee']) : null;
            if ($anneeUniv) {
                $paramsFiltre['annee_univ'] = $anneeUniv->getAnneeUniv();
                $isEtudiant = true;
            }
        }

        if (array_key_exists('etablissement', $paramsQuery)) {
            $etablissement = $paramsQuery['etablissement'] ? $this->getEtablissementIAService()->getEtablissementIA($paramsQuery['etablissement']) : null;
            if ($etablissement) {
                $paramsFiltre['etablissement'] = $etablissement->getEtablissement();
                $isEtudiant = true;
            }
        }

        if (array_key_exists('composante', $paramsQuery)) {
            $composante = $paramsQuery['composante'] ? $this->getComposanteIAService()->getComposanteIA($paramsQuery['composante']) : null;
            if ($composante) {
                $paramsFiltre['composante'] = $composante?->getComposante();
                $isEtudiant = true;
            }
        }

        if ($isEtudiant) {
            $paramsFiltre['typeParticipant'] = Participant::ETUDIANT;
            $paramsQuery['typeParticipant'] = array_search(Participant::ETUDIANT, $typeParticipantAsOptions);
        } else {
            if (array_key_exists('typeParticipant', $paramsQuery)
                && array_key_exists($paramsQuery['typeParticipant'], $typeParticipantAsOptions)) {

                $paramsFiltre['typeParticipant'] = $typeParticipantAsOptions[$paramsQuery['typeParticipant']];
            }
        }

        if (array_key_exists('participant', $paramsQuery)) {
            if(array_key_exists('id', $paramsQuery['participant'])) {
                $paramsFiltre['id'] = $paramsQuery['participant']['id'];
            }
        }

        $participants = null;
        if ($paramsFiltre !== null) {
            $participants = $this->getParticipantService()->getParticipantsWithFiltre($paramsFiltre);
        }

        return new ViewModel([
            "entities" => $entities,
            "participants" => $participants,
            'paramsQuery' => $paramsQuery,
            'anneeUnivIAasOptions' => $anneeUnivIAasOptions,
            'etablissementIAasOptions' => $etablissementIAasOptions,
            'composanteIAasOptions' => $composanteIAasOptions,
            'typeParticipantAsOptions' => $typeParticipantAsOptions,
        ]);
    }

@@ -247,4 +312,3 @@ class ParticipantController extends AbstractActionController
        exit;
    }
}
+14 −0
Original line number Diff line number Diff line
@@ -2,6 +2,9 @@

namespace Evenementiel\Controller;

use Etudiant\Service\AnneeUnivIA\AnneeUnivIAService;
use Etudiant\Service\ComposanteIA\ComposanteIAService;
use Etudiant\Service\EtablissementIA\EtablissementIAService;
use Etudiant\Service\Etudiant\EtudiantService;
use Evenementiel\Form\Participant\EtudiantForm;
use Evenementiel\Form\Participant\ParticipantForm;
@@ -29,11 +32,18 @@ class ParticipantControllerFactory
         * @var EtudiantService $etudiantService
         * @var PersonnelForm $personnelForm
         * @var PersonnelService $personnelService
         * @var AnneeUnivIAService $anneeUnivIAService
         * @var ComposanteIAService $composanteIAService
         * @var EtablissementIAService $etablissementIAService
         */

        $participantService = $container->get(ParticipantService::class);
        $participantForm = $container->get("FormElementManager")->get(ParticipantForm::class);
        $etudiantform = $container->get("FormElementManager")->get(EtudiantForm::class);
        $etudiantService = $container->get(EtudiantService::class);
        $anneeUnivIAService = $container->get(AnneeUnivIAService::class);
        $composanteIAService = $container->get(ComposanteIAService::class);
        $etablissementIAService = $container->get(EtablissementIAService::class);
        $personnelForm = $container->get("FormElementManager")->get(PersonnelForm::class);
        $personnelService = $container->get(PersonnelService::class);

@@ -42,8 +52,12 @@ class ParticipantControllerFactory
        $controller->setParticipantForm($participantForm);
        $controller->setEtudiantForm($etudiantform);
        $controller->setEtudiantService($etudiantService);

        $controller->setPersonnelForm($personnelForm);
        $controller->setPersonnelService($personnelService);
        $controller->setAnneeUnivIAService($anneeUnivIAService);
        $controller->setComposanteIAService($composanteIAService);
        $controller->setEtablissementIAService($etablissementIAService);

        return $controller;
    }
Loading