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

[FIX] Amélioration de la robustesse de la proposition de soutenance pour les...

[FIX] Amélioration de la robustesse de la proposition de soutenance pour les cas de th_se sans ED, sans UR ou sans ETAB
parent e1c4d98f
Loading
Loading
Loading
Loading
+1 −0
Changes for CHANGELOG.md: 1 added line, 0 removed lines.
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@ Journal des modifications
- [FIX] Plantage de la recherche textuelle d'individus en cas de résultat vide. 
- [FIX] Ajout de garde pour l'index des rapporteurs (cas où le membre est null qui bloquait les administrateurs)
- Changement du lien dans le mail pour la validation des présidents : redirect + selection du rôle
- [FIX] Amélioration de la robustesse de la proposition de soutenance pour les cas de th_se sans ED, sans UR ou sans ETAB  

5.2.0
-----
+21 −5
Changes for module/Soutenance/src/Soutenance/Controller/PropositionController.php: 21 added lines, 5 removed lines.
Original line number Diff line number Diff line
@@ -122,16 +122,32 @@ class PropositionController extends AbstractController

        /** Collècte des informations sur les individus liés -------------------------------------------------------- */
        /** @var IndividuRole[] $ecoleResponsables */
        $ecoleResponsables = [];
        if ($these->getEcoleDoctorale() !== null) {
            $ecoleResponsables = $this->getRoleService()->getIndividuRoleByStructure($these->getEcoleDoctorale()->getStructure());
        $ecoleResponsables = array_filter($ecoleResponsables, function(IndividuRole $ir) use ($these) { return $ir->getIndividu()->getEtablissement() AND $ir->getIndividu()->getEtablissement()->getId() === $these->getEtablissement()->getId(); });
            $ecoleResponsables = array_filter($ecoleResponsables, function (IndividuRole $ir) use ($these) {
                return $ir->getIndividu()->getEtablissement() and $ir->getIndividu()->getEtablissement()->getId() === $these->getEtablissement()->getId();
            });
        }
        /** @var IndividuRole[] $uniteResponsables */
        $uniteResponsables = [];
        if ($these->getUniteRecherche() !== null) {
            $uniteResponsables = $this->getRoleService()->getIndividuRoleByStructure($these->getUniteRecherche()->getStructure());
        $uniteResponsables = array_filter($uniteResponsables, function(IndividuRole $ir) use ($these) { return $ir->getIndividu()->getEtablissement() AND $ir->getIndividu()->getEtablissement()->getId() === $these->getEtablissement()->getId(); });
            $uniteResponsables = array_filter($uniteResponsables, function (IndividuRole $ir) use ($these) {
                return $ir->getIndividu()->getEtablissement() and $ir->getIndividu()->getEtablissement()->getId() === $these->getEtablissement()->getId();
            });
        }
        /** @var IndividuRole[] $etablissementResponsables */
        $etablissementResponsables = [];
        if ($these->getEtablissement() !== null) {
            $etablissementResponsables = $this->roleService->getIndividuRoleByStructure($these->getEtablissement()->getStructure());
        $etablissementResponsables = array_filter($etablissementResponsables, function (IndividuRole $ir) { return $ir->getRole()->getCode() === Role::CODE_BDD;});
        $etablissementResponsables = array_filter($etablissementResponsables, function(IndividuRole $ir) use ($these) { return $ir->getIndividu()->getEtablissement() AND $ir->getIndividu()->getEtablissement()->getId() === $these->getEtablissement()->getId(); });

            $etablissementResponsables = array_filter($etablissementResponsables, function (IndividuRole $ir) {
                return $ir->getRole()->getCode() === Role::CODE_BDD;
            });
            $etablissementResponsables = array_filter($etablissementResponsables, function (IndividuRole $ir) use ($these) {
                return $ir->getIndividu()->getEtablissement() and $ir->getIndividu()->getEtablissement()->getId() === $these->getEtablissement()->getId();
            });
        }
        $informationsOk = true;
        $directeurs = $this->getActeurService()->getRepository()->findEncadrementThese($these);
        foreach ($directeurs as $directeur) {