Loading module/Application/src/Application/Controller/Factory/SubstitutionControllerFactory.php +8 −0 Original line number Diff line number Diff line Loading @@ -3,8 +3,10 @@ namespace Application\Controller\Factory; use Application\Controller\SubstitutionController; use Application\Service\EcoleDoctorale\EcoleDoctoraleService; use Application\Service\Etablissement\EtablissementService; use Application\Service\Structure\StructureService; use Application\Service\UniteRecherche\UniteRechercheService; use Zend\Mvc\Controller\ControllerManager; class SubstitutionControllerFactory Loading @@ -22,12 +24,18 @@ class SubstitutionControllerFactory /** * @var EtablissementService $etablissementService * @var StructureService $structureService * @var EcoleDoctoraleService $ecoleService * @var UniteRechercheService $uniteService */ $etablissementService = $sl->get('EtablissementService'); $ecoleService = $sl->get('EcoleDoctoraleService'); $uniteService = $sl->get('UniteRechercheService'); $structureService = $sl->get('StructureService'); $controller = new SubstitutionController(); $controller->setEtablissementService($etablissementService); $controller->setEcoleDoctoraleService($ecoleService); $controller->setUniteRechercheService($uniteService); $controller->setStructureService($structureService); return $controller; Loading module/Application/src/Application/Controller/SubstitutionController.php +10 −23 Original line number Diff line number Diff line Loading @@ -24,7 +24,6 @@ class SubstitutionController extends AbstractController public function indexAction() { $structuresSubstituees = $this->structureService->getStructuresSubstituees(); $etablissementsSubstitues = []; $ecolesSubstituees = []; Loading Loading @@ -55,18 +54,7 @@ class SubstitutionController extends AbstractController public function creerAction() { $type = $this->params()->fromRoute('type'); $structures = []; switch($type) { case TypeStructure::CODE_ETABLISSEMENT : $structures = $this->etablissementService->getEtablissements(); break; case TypeStructure::CODE_ECOLE_DOCTORALE : $structures = $this->ecoleDoctoraleService->getEcolesDoctorales(); break; case TypeStructure::CODE_UNITE_RECHERCHE : $structures = $this->uniteRechercheService->getUnitesRecherches(); break; } $structures = $this->structureService->getStructuresConcretesByType($type); $request = $this->getRequest(); if ($request->isPost()) { Loading @@ -76,14 +64,13 @@ class SubstitutionController extends AbstractController $structure = $this->structureService->findStructureById($sourceId); $structureConcrete = $this->structureService->findStructureConcreteFromStructure($structure); if ($structureConcrete === null) { throw new RuntimeException("Aucune structure concréte cible trouvée avec id=$sourceId."); throw new RuntimeException("Aucune structure concrète cible trouvée avec id=$sourceId."); } $sources[] = $structureConcrete; } //creation de la structureCible adequate $structureCibleDataObject = $this->structureService->createStructureConcrete($type); //TODO bouger cela dans structureService ?? $this->structureService->updateFromPostData($structureCibleDataObject, $data['cible']); $structureCible = $this->structureService->createStructureSubstitutions($sources, $structureCibleDataObject); Loading @@ -93,7 +80,6 @@ class SubstitutionController extends AbstractController } else { $cible = new Structure(); $structuresConcretesSubstituees = []; $etablissements = $this->etablissementService->findEtablissementsNonSubstitues(); } $vm = new ViewModel([ Loading @@ -119,20 +105,21 @@ class SubstitutionController extends AbstractController $structuresConcretesSubstituees[] = $structureConcreteSubstituee; } $etablissements = $this->etablissementService->findEtablissementsNonSubstitues(); $structures = $this->structureService->getStructuresConcretesByType($structureCible->getTypeStructure()->getCode()); $request = $this->getRequest(); if ($request->isPost()) { $data = $request->getPost(); $sources = []; foreach ($data['sourceIds'] as $sourceId) { $etablissement = $this->etablissementService->findEtablissementByStructureId($sourceId); if ($etablissement === null) { throw new RuntimeException("Etablissement cible non trouvé avec id=$sourceId."); $structure = $this->structureService->findStructureById($sourceId); $structureConcrete = $this->structureService->findStructureConcreteFromStructure($structure); if ($structureConcrete === null) { throw new RuntimeException("Aucune structure concrète cible trouvée avec id=$sourceId."); } $sources[] = $etablissement; $sources[] = $structureConcrete; } $this->etablissementService->updateFromPostData($structureCible,$data['cible']); $this->structureService->updateFromPostData($structureCible,$data['cible']); $this->structureService->updateStructureSubstitutions($sources, $structureCible); return $this->redirect()->toRoute(null, [],[], true); Loading @@ -142,7 +129,7 @@ class SubstitutionController extends AbstractController return new ViewModel([ 'cible' => $structureCible, 'structuresConcretes' => $etablissements, 'structuresConcretes' => $structures, 'structuresConcretesSubstituees' => $structuresConcretesSubstituees, ]); } Loading module/Application/src/Application/Service/Structure/StructureService.php +20 −0 Original line number Diff line number Diff line Loading @@ -348,4 +348,24 @@ class StructureService extends BaseService $hydrator = new DoctrineObject($this->getEntityManager()); $hydrator->hydrate($data, $structure); } public function getStructuresConcretesByType($typeStructure) { $structures = []; switch($typeStructure) { case TypeStructure::CODE_ETABLISSEMENT : $structures = $this->getEntityManager()->getRepository(Etablissement::class)->findAll(); break; case TypeStructure::CODE_ECOLE_DOCTORALE : $structures = $this->getEntityManager()->getRepository(EcoleDoctorale::class)->findAll(); break; case TypeStructure::CODE_UNITE_RECHERCHE : $structures = $this->getEntityManager()->getRepository(UniteRecherche::class)->findAll(); break; default: throw new RuntimeException("Type de structure inconnu [".$typeStructure."]"); } usort($structures, function ($a,$b) { return $a->getLibelle() > $b->getLibelle();}); return $structures; } } No newline at end of file Loading
module/Application/src/Application/Controller/Factory/SubstitutionControllerFactory.php +8 −0 Original line number Diff line number Diff line Loading @@ -3,8 +3,10 @@ namespace Application\Controller\Factory; use Application\Controller\SubstitutionController; use Application\Service\EcoleDoctorale\EcoleDoctoraleService; use Application\Service\Etablissement\EtablissementService; use Application\Service\Structure\StructureService; use Application\Service\UniteRecherche\UniteRechercheService; use Zend\Mvc\Controller\ControllerManager; class SubstitutionControllerFactory Loading @@ -22,12 +24,18 @@ class SubstitutionControllerFactory /** * @var EtablissementService $etablissementService * @var StructureService $structureService * @var EcoleDoctoraleService $ecoleService * @var UniteRechercheService $uniteService */ $etablissementService = $sl->get('EtablissementService'); $ecoleService = $sl->get('EcoleDoctoraleService'); $uniteService = $sl->get('UniteRechercheService'); $structureService = $sl->get('StructureService'); $controller = new SubstitutionController(); $controller->setEtablissementService($etablissementService); $controller->setEcoleDoctoraleService($ecoleService); $controller->setUniteRechercheService($uniteService); $controller->setStructureService($structureService); return $controller; Loading
module/Application/src/Application/Controller/SubstitutionController.php +10 −23 Original line number Diff line number Diff line Loading @@ -24,7 +24,6 @@ class SubstitutionController extends AbstractController public function indexAction() { $structuresSubstituees = $this->structureService->getStructuresSubstituees(); $etablissementsSubstitues = []; $ecolesSubstituees = []; Loading Loading @@ -55,18 +54,7 @@ class SubstitutionController extends AbstractController public function creerAction() { $type = $this->params()->fromRoute('type'); $structures = []; switch($type) { case TypeStructure::CODE_ETABLISSEMENT : $structures = $this->etablissementService->getEtablissements(); break; case TypeStructure::CODE_ECOLE_DOCTORALE : $structures = $this->ecoleDoctoraleService->getEcolesDoctorales(); break; case TypeStructure::CODE_UNITE_RECHERCHE : $structures = $this->uniteRechercheService->getUnitesRecherches(); break; } $structures = $this->structureService->getStructuresConcretesByType($type); $request = $this->getRequest(); if ($request->isPost()) { Loading @@ -76,14 +64,13 @@ class SubstitutionController extends AbstractController $structure = $this->structureService->findStructureById($sourceId); $structureConcrete = $this->structureService->findStructureConcreteFromStructure($structure); if ($structureConcrete === null) { throw new RuntimeException("Aucune structure concréte cible trouvée avec id=$sourceId."); throw new RuntimeException("Aucune structure concrète cible trouvée avec id=$sourceId."); } $sources[] = $structureConcrete; } //creation de la structureCible adequate $structureCibleDataObject = $this->structureService->createStructureConcrete($type); //TODO bouger cela dans structureService ?? $this->structureService->updateFromPostData($structureCibleDataObject, $data['cible']); $structureCible = $this->structureService->createStructureSubstitutions($sources, $structureCibleDataObject); Loading @@ -93,7 +80,6 @@ class SubstitutionController extends AbstractController } else { $cible = new Structure(); $structuresConcretesSubstituees = []; $etablissements = $this->etablissementService->findEtablissementsNonSubstitues(); } $vm = new ViewModel([ Loading @@ -119,20 +105,21 @@ class SubstitutionController extends AbstractController $structuresConcretesSubstituees[] = $structureConcreteSubstituee; } $etablissements = $this->etablissementService->findEtablissementsNonSubstitues(); $structures = $this->structureService->getStructuresConcretesByType($structureCible->getTypeStructure()->getCode()); $request = $this->getRequest(); if ($request->isPost()) { $data = $request->getPost(); $sources = []; foreach ($data['sourceIds'] as $sourceId) { $etablissement = $this->etablissementService->findEtablissementByStructureId($sourceId); if ($etablissement === null) { throw new RuntimeException("Etablissement cible non trouvé avec id=$sourceId."); $structure = $this->structureService->findStructureById($sourceId); $structureConcrete = $this->structureService->findStructureConcreteFromStructure($structure); if ($structureConcrete === null) { throw new RuntimeException("Aucune structure concrète cible trouvée avec id=$sourceId."); } $sources[] = $etablissement; $sources[] = $structureConcrete; } $this->etablissementService->updateFromPostData($structureCible,$data['cible']); $this->structureService->updateFromPostData($structureCible,$data['cible']); $this->structureService->updateStructureSubstitutions($sources, $structureCible); return $this->redirect()->toRoute(null, [],[], true); Loading @@ -142,7 +129,7 @@ class SubstitutionController extends AbstractController return new ViewModel([ 'cible' => $structureCible, 'structuresConcretes' => $etablissements, 'structuresConcretes' => $structures, 'structuresConcretesSubstituees' => $structuresConcretesSubstituees, ]); } Loading
module/Application/src/Application/Service/Structure/StructureService.php +20 −0 Original line number Diff line number Diff line Loading @@ -348,4 +348,24 @@ class StructureService extends BaseService $hydrator = new DoctrineObject($this->getEntityManager()); $hydrator->hydrate($data, $structure); } public function getStructuresConcretesByType($typeStructure) { $structures = []; switch($typeStructure) { case TypeStructure::CODE_ETABLISSEMENT : $structures = $this->getEntityManager()->getRepository(Etablissement::class)->findAll(); break; case TypeStructure::CODE_ECOLE_DOCTORALE : $structures = $this->getEntityManager()->getRepository(EcoleDoctorale::class)->findAll(); break; case TypeStructure::CODE_UNITE_RECHERCHE : $structures = $this->getEntityManager()->getRepository(UniteRecherche::class)->findAll(); break; default: throw new RuntimeException("Type de structure inconnu [".$typeStructure."]"); } usort($structures, function ($a,$b) { return $a->getLibelle() > $b->getLibelle();}); return $structures; } } No newline at end of file