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

Début de l'interface de substitution

parent dfb0e079
Loading
Loading
Loading
Loading
Loading
+4 −5
Original line number Diff line number Diff line
<?php

use Application\Controller\SubstitutionController;
use Application\Controller\Factory\SubstitutionControllerFactory;
use Application\Provider\Privilege\EcoleDoctoralePrivileges;
use UnicaenAuth\Guard\PrivilegeController;
use Zend\Mvc\Router\Http\Segment;
@@ -70,10 +70,9 @@ return [
        'aliases' => []
    ],
    'controllers'     => [
        'invokables' => [
            'Application\Controller\Substitution' => SubstitutionController::class,
            ],
        'factories' => [],
        'invokables' => [],
        'factories' => [
            'Application\Controller\Substitution' => SubstitutionControllerFactory::class,],
    ],
    'form_elements'   => [
        'invokables' => [],
+34 −0
Original line number Diff line number Diff line
<?php

namespace Application\Controller\Factory;

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

class SubstitutionControllerFactory
{
    use EtablissementServiceAwareTrait;

    /**
     * Create service
     *
     * @param ControllerManager $controllerManager
     * @return SubstitutionController
     */
    public function __invoke(ControllerManager $controllerManager)
    {
        $sl = $controllerManager->getServiceLocator();

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

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

        return $controller;
    }
}
 No newline at end of file
+14 −1
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@ use Zend\View\Model\ViewModel;

class SubstitutionController extends AbstractController
{
    use EtablissementServiceAwareTrait;
    public function indexAction()
    {
        return new ViewModel();
@@ -24,6 +25,18 @@ class SubstitutionController extends AbstractController

    public function selectionAction()
    {
        return new ViewModel();

        $etablissements = $this->etablissementService->getEtablissements();
        $etablissement = $this->etablissementService->getEtablissementById(2);
        $selection = [
            $this->etablissementService->getEtablissementById(2),
            $this->etablissementService->getEtablissementById(3),
            $this->etablissementService->getEtablissementById(4)
        ];
        return new ViewModel([
            'nouvelEtablissement' => $etablissement,
            'selectedEtablissements' => $selection,
            'etablissements' => $etablissements,
        ]);
    }
}
 No newline at end of file
+56 −1
Original line number Diff line number Diff line
SUBSTITUTION SLECTION
 No newline at end of file
<?php

use Application\Entity\Db\Etablissement;

/**
 * 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
 */
?>

<?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>

<div class="pull-left">
<?php
    foreach($selectedEtablissements as $selectedEtablissement) {
        echo generateDivEtablissement($selectedEtablissement);
    }
?>
</div>

<div class="pull-right">
    <?php
    echo generateDivEtablissement($nouvelEtablissement);
    ?>
</div>

<?php
function generateDivEtablissement(Etablissement $etablissement) {
    $texte =    "";
    $texte .=   "<div class='etablissement bg-warning'>";
    $texte .= $etablissement->getSigle();
    $texte .=   "<br/>";
    $texte .= $etablissement->getLibelle();
    $texte .=   "<br/>";
    $texte .= $etablissement->getCheminLogo();
    $texte .=   "<br/>";
    $texte .=   "</div>";
    return $texte;
}
?>

<style>
    div.etablissement {
        margin: 5px;
        padding: 5px;
        border: 2px gray solid;
        border-radius: 5px;
    }
</style>