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

Modification du service et début de controlleur

parent 2d27b0b8
Loading
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -37,7 +37,7 @@ return [
            'substitution-selection' => [
                'type'          => Segment::class,
                'options'       => [
                    'route'    => '/substitution/selection',
                    'route'    => '/substitution/selection/:generalisation/:etablissements',
                    'defaults' => [
                        '__NAMESPACE__' => 'Application\Controller',
                        'controller'    => 'Substitution',
+4 −3
Original line number Diff line number Diff line
@@ -4,13 +4,11 @@ namespace Application\Controller\Factory;

use Application\Controller\SubstitutionController;
use Application\Service\Etablissement\EtablissementService;
use Application\Service\Etablissement\EtablissementServiceAwareTrait;
use Application\Service\Structure\StructureService;
use Zend\Mvc\Controller\ControllerManager;

class SubstitutionControllerFactory
{
    use EtablissementServiceAwareTrait;

    /**
     * Create service
     *
@@ -23,11 +21,14 @@ class SubstitutionControllerFactory

        /**
         * @var EtablissementService $etablissementService
         * @var StructureService $structureService
         */
        $etablissementService = $sl->get('EtablissementService');
        $structureService = $sl->get('StructureService');

        $controller = new SubstitutionController();
        $controller->setEtablissementService($etablissementService);
        $controller->setStructureService($structureService);

        return $controller;
    }
+49 −17
Original line number Diff line number Diff line
@@ -2,37 +2,69 @@

namespace Application\Controller;

use Application\Entity\Db\EcoleDoctorale;
use Application\Entity\Db\Individu;
use Application\Entity\Db\IndividuRole;
use Application\Entity\Db\Role;
use Application\Form\EcoleDoctoraleForm;
use Application\RouteMatch;
use Application\Service\EcoleDoctorale\EcoleDoctoraleServiceAwareTrait;
use Application\Service\Etablissement\EtablissementServiceAwareTrait;
use Application\Service\Individu\IndividuServiceAwareTrait;
use Application\Service\Role\RoleServiceAwareTrait;
use UnicaenLdap\Service\LdapPeopleServiceAwareTrait;
use Application\Service\Structure\StructureServiceAwareTrait;
use Zend\View\Model\ViewModel;

class SubstitutionController extends AbstractController
{
    use EtablissementServiceAwareTrait;
    use StructureServiceAwareTrait;

    public function indexAction()
    {
        return new ViewModel();
        $cibles = $this->structureService->findStructuresSubstitutions();
        $etablissements = $this->etablissementService->getEtablissements();

        return new ViewModel([
            'cibles' => $cibles,
            'etablissements' => $etablissements,
        ]);
    }

//    public function ajouterAction() {
//        $idCible = $this->params()->fromRoute('cible');
//        $idAjout = $this->params()->fromRoute('ajout');
//
//        $liste = $this->structure
//
//        $this->redirect()->toRoute('substitution-selection', ['cible' => $idCible]);
//    }
//
//    public function retirerAction() {
//        $idCible = $this->params()->fromRoute('cible');
//        $idAjout = $this->params()->fromRoute('ajout');
//
//        //HERE DO THE STUFF
//
//        $this->redirect()->toRoute('substitution-selection', ['cible' => $idCible]);
//    }

    public function selectionAction()
    {

        $idGeneralisation = $this->params()->fromRoute('generalisation');
        $idEtablissements = explode(",",$this->params()->fromRoute('etablissements'));
        $idAjout = $this->params()->fromQuery('nouveau');
        $idRetrait = $this->params()->fromQuery('retrait');

        $etablissements = $this->etablissementService->getEtablissements();
        $etablissement = $this->etablissementService->getEtablissementById(2);
        $selection = [
            $this->etablissementService->getEtablissementById(2),
            $this->etablissementService->getEtablissementById(3),
            $this->etablissementService->getEtablissementById(4)
        ];
        $etablissement = $this->etablissementService->getEtablissementById($idGeneralisation);
        $selection = [];
        foreach($idEtablissements as $idEtablissement) {
            $selection[] = $this->etablissementService->getEtablissementById($idEtablissement);
        }
        if($idAjout !== null && $idAjout !== '') {
            $selection[] = $this->etablissementService->getEtablissementById($idAjout);
        }
        if($idRetrait !== null && $idRetrait !== '') {
            $selection = array_filter($selection, function($a) use ($idRetrait) {return $a->getId() != $idRetrait;});
//            $selection_bis = [];
//            foreach ($selection as $s) {
//                if ($s->getId() != ($idRetrait)) $selection_bis[] = $s;
//            }
//            $selection = $selection_bis;
        }
        return new ViewModel([
            'nouvelEtablissement' => $etablissement,
            'selectedEtablissements' => $selection,
+3 −3
Original line number Diff line number Diff line
@@ -10,7 +10,7 @@ trait StructureServiceAwareTrait
    /**
     * @var StructureService
     */
    protected $serviceStructureStructure;
    protected $structureService;

    /**
     * @param StructureService $structureService
@@ -18,7 +18,7 @@ trait StructureServiceAwareTrait
     */
    public function setStructureService(StructureService $structureService)
    {
        $this->serviceStructureStructure = $structureService;
        $this->structureService = $structureService;

        return $this;
    }
@@ -28,6 +28,6 @@ trait StructureServiceAwareTrait
     */
    public function getServiceStructureStructure()
    {
        return $this->serviceStructureStructure;
        return $this->structureService;
    }
}
 No newline at end of file
+34 −3
Original line number Diff line number Diff line
<?php

use Application\Entity\Db\Etablissement;

use Application\View\Renderer\PhpRenderer;
/**
 * Variables remontant du controleur
 * @var Etablissement   $nouvelEtablissement ==> l'etablissement qui va regrouper les établissements
 * @var Etablissement[] $selectedEtablissements ==> la liste des établissements sélectionnés
 * @var Etablissement[] $etablissements ==> la liste des établissements triés
 * @var PhpRenderer $this
 */

    $idEtablissements = [];
    foreach($selectedEtablissements as$etablissement) $idEtablissements[] = $etablissement->getId();
    $substitues = implode(",", $idEtablissements);
?>

<?php $this->headTitle($this->translate("Substitution d'établissements")) ?>


<h1 class="page-header first">
    <?php echo $this->translate("Substitution d'établissements"); ?>
    <span class="badge"><?php echo $nouvelEtablissement->getSigle(); ?></span>
</h1>

<p>
<!--<button class="btn btn-primary">Ajouter un établissement</button></a>-->
    <form action="
    <?php echo $this->url('substitution-selection',
                            ['generalisation' => $nouvelEtablissement->getId(), 'etablissements' => $substitues]
                ); ?>">
    <?php echo generateSelect($etablissements); ?>
    <input type="submit" value="Ajouter un établissement"/>
    </form>
</p>


<div class="pull-left">
<?php
    foreach($selectedEtablissements as $selectedEtablissement) {
        echo generateDivEtablissement($selectedEtablissement);
        $url = $this->url('substitution-selection', [], [ 'query' => ['retrait' => $selectedEtablissement->getId()]], true);
        echo generateDivEtablissement($selectedEtablissement, $url);
    }
?>
</div>
@@ -32,7 +51,7 @@ use Application\Entity\Db\Etablissement;
</div>

<?php
function generateDivEtablissement(Etablissement $etablissement) {
function generateDivEtablissement(Etablissement $etablissement, $url) {
    $texte =    "";
    $texte .=   "<div class='etablissement bg-warning'>";

@@ -58,6 +77,7 @@ function generateDivEtablissement(Etablissement $etablissement) {
    $texte .= "<span class='texte'>" . $etablissement->getLibelle() . "</span>";
    $texte .= "</span>";

    $texte .= "<a href='".$url."'> Remove this </a>";
    $texte .=   "</div>";
    return $texte;
}
@@ -81,6 +101,17 @@ function generateDivSubstitution($etablissement) {
    $texte .=   "</div>";
    return $texte;
}

function generateSelect($etablissements) {
    $texte  = "";
    $texte .= "<select id='nouveau'>";
    foreach ($etablissements as $etablissement) {
        $texte .= "<option value='".$etablissement->getId()."'>".$etablissement->getLibelle() ."</option>";
    }
    $texte .= "</select>";
    return $texte;

}
?>

<style>