Loading module/Application/config/others/substitution.config.php +1 −1 Original line number Diff line number Diff line Loading @@ -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', Loading module/Application/src/Application/Controller/Factory/SubstitutionControllerFactory.php +4 −3 Original line number Diff line number Diff line Loading @@ -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 * Loading @@ -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; } Loading module/Application/src/Application/Controller/SubstitutionController.php +49 −17 Original line number Diff line number Diff line Loading @@ -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, Loading module/Application/src/Application/Service/Structure/StructureServiceAwareTrait.php +3 −3 Original line number Diff line number Diff line Loading @@ -10,7 +10,7 @@ trait StructureServiceAwareTrait /** * @var StructureService */ protected $serviceStructureStructure; protected $structureService; /** * @param StructureService $structureService Loading @@ -18,7 +18,7 @@ trait StructureServiceAwareTrait */ public function setStructureService(StructureService $structureService) { $this->serviceStructureStructure = $structureService; $this->structureService = $structureService; return $this; } Loading @@ -28,6 +28,6 @@ trait StructureServiceAwareTrait */ public function getServiceStructureStructure() { return $this->serviceStructureStructure; return $this->structureService; } } No newline at end of file module/Application/view/application/substitution/selection.phtml +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> Loading @@ -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'>"; Loading @@ -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; } Loading @@ -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> Loading Loading
module/Application/config/others/substitution.config.php +1 −1 Original line number Diff line number Diff line Loading @@ -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', Loading
module/Application/src/Application/Controller/Factory/SubstitutionControllerFactory.php +4 −3 Original line number Diff line number Diff line Loading @@ -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 * Loading @@ -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; } Loading
module/Application/src/Application/Controller/SubstitutionController.php +49 −17 Original line number Diff line number Diff line Loading @@ -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, Loading
module/Application/src/Application/Service/Structure/StructureServiceAwareTrait.php +3 −3 Original line number Diff line number Diff line Loading @@ -10,7 +10,7 @@ trait StructureServiceAwareTrait /** * @var StructureService */ protected $serviceStructureStructure; protected $structureService; /** * @param StructureService $structureService Loading @@ -18,7 +18,7 @@ trait StructureServiceAwareTrait */ public function setStructureService(StructureService $structureService) { $this->serviceStructureStructure = $structureService; $this->structureService = $structureService; return $this; } Loading @@ -28,6 +28,6 @@ trait StructureServiceAwareTrait */ public function getServiceStructureStructure() { return $this->serviceStructureStructure; return $this->structureService; } } No newline at end of file
module/Application/view/application/substitution/selection.phtml +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> Loading @@ -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'>"; Loading @@ -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; } Loading @@ -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> Loading