Loading CHANGELOG.md +1 −0 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ Journal des modifications - Petites améliorations autour des notifs concernant les changements détectés lors de l'import (admission, corrections attendues). - Financements sur la fiche Thèse : afficher la nature devant chaque info (type, origine, quotité). - Page de connexion : amélioration du texte expliquant l'authentification via la fédération d'identité (NB : le texte est dans la config locale). - Annuaire des thèses : initialisation du filtre ED/UR/Etab avec la structure du rôle utilisateur (avec possibilité de changer). - [FIX] Observation des résultats d'import/synchro : correction du filtrage par source de données (anciennement 'etablissement') non pris en compte. - [FIX] Upgrade d'unicaen/app pour corriger le lien Ajouter dysfonctionnel dans le formulaire Rapport d'activité. - [FIX] Appel de fonction erroné faisant planter la notification 'correction attendue'. Loading module/These/src/These/Controller/TheseRechercheController.php +25 −46 Original line number Diff line number Diff line Loading @@ -16,8 +16,6 @@ use These\Service\These\TheseSearchService; use These\Service\These\TheseServiceAwareTrait; /** * Class TheseRechercheController * * @property TheseSearchService $searchService */ class TheseRechercheController extends AbstractController implements SearchControllerInterface Loading @@ -28,21 +26,12 @@ class TheseRechercheController extends AbstractController implements SearchContr use RoleServiceAwareTrait; use TheseServiceAwareTrait; /** * @var array */ private $queryParams; /** * @var array */ private $searchIfRequired = false; // todo : ne pas mettre à true car impossible de dépasser la page 1 !! :-( private bool $searchIfRequired = false; // todo : ne pas mettre à true car impossible de dépasser la page 1 !! :-( /** * @return ViewModel|Response */ public function indexAction() public function indexAction(): Response|ViewModel { $this->restrictFiltersByStructure(); $text = $this->params()->fromQuery('text'); /** @see TheseSearchService */ Loading @@ -67,11 +56,10 @@ class TheseRechercheController extends AbstractController implements SearchContr ]); } /** * @return ViewModel */ public function indexFiltersAction(): ViewModel { $this->restrictFiltersByStructure(); $filters = $this->filters(); $vm = new ViewModel([ Loading @@ -83,34 +71,6 @@ class TheseRechercheController extends AbstractController implements SearchContr return $vm; } // /** // * Pour les acteurs de thèses en général (Doctorant, Dir, Codir, etc.) // * // * @return ViewModel|Response // */ // public function miennesAction() // { // /** @var Role $role */ // $role = $this->userContextService->getSelectedIdentityRole(); // $individu = $this->userContextService->getIdentityIndividu(); // $etats = [These::ETAT_EN_COURS]; // // switch (true) { // case $role->isDoctorant() : // $theses = $this->theseService->getRepository()->findThesesByDoctorantAsIndividu($individu, $etats); // break; // case $role->isActeurDeThese() : // $theses = $this->theseService->getRepository()->findThesesByActeur($individu, $role, $etats); // break; // default: // return $this->redirect()->toRoute('home'); // } // // return new ViewModel([ // 'theses' => $theses, // ]); // } /** * Prévu pour ED, UR, MDD. * Loading Loading @@ -176,4 +136,23 @@ class TheseRechercheController extends AbstractController implements SearchContr ->setDefaultValueAsObject($entity) ->setAllowsEmptyOption(false); } private function restrictFiltersByStructure(): void { $role = $this->userContextService->getSelectedIdentityRole(); if ($role->isEcoleDoctoraleDependant()) { $filter = $this->searchService->getEcoleDoctoraleSearchFilter(); $sc = $role->getStructure()->getEcoleDoctorale(); $filter->setDefaultValueAsObject($sc); } elseif ($role->isUniteRechercheDependant()) { $filter = $this->searchService->getUniteRechercheSearchFilter(); $sc = $role->getStructure()->getUniteRecherche(); $filter->setDefaultValueAsObject($sc); } elseif ($role->isEtablissementDependant()) { $filter = $this->searchService->getEtablissementInscSearchFilter(); $sc = $role->getStructure()->getEtablissement(); $filter->setDefaultValueAsObject($sc); } } } No newline at end of file Loading
CHANGELOG.md +1 −0 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ Journal des modifications - Petites améliorations autour des notifs concernant les changements détectés lors de l'import (admission, corrections attendues). - Financements sur la fiche Thèse : afficher la nature devant chaque info (type, origine, quotité). - Page de connexion : amélioration du texte expliquant l'authentification via la fédération d'identité (NB : le texte est dans la config locale). - Annuaire des thèses : initialisation du filtre ED/UR/Etab avec la structure du rôle utilisateur (avec possibilité de changer). - [FIX] Observation des résultats d'import/synchro : correction du filtrage par source de données (anciennement 'etablissement') non pris en compte. - [FIX] Upgrade d'unicaen/app pour corriger le lien Ajouter dysfonctionnel dans le formulaire Rapport d'activité. - [FIX] Appel de fonction erroné faisant planter la notification 'correction attendue'. Loading
module/These/src/These/Controller/TheseRechercheController.php +25 −46 Original line number Diff line number Diff line Loading @@ -16,8 +16,6 @@ use These\Service\These\TheseSearchService; use These\Service\These\TheseServiceAwareTrait; /** * Class TheseRechercheController * * @property TheseSearchService $searchService */ class TheseRechercheController extends AbstractController implements SearchControllerInterface Loading @@ -28,21 +26,12 @@ class TheseRechercheController extends AbstractController implements SearchContr use RoleServiceAwareTrait; use TheseServiceAwareTrait; /** * @var array */ private $queryParams; /** * @var array */ private $searchIfRequired = false; // todo : ne pas mettre à true car impossible de dépasser la page 1 !! :-( private bool $searchIfRequired = false; // todo : ne pas mettre à true car impossible de dépasser la page 1 !! :-( /** * @return ViewModel|Response */ public function indexAction() public function indexAction(): Response|ViewModel { $this->restrictFiltersByStructure(); $text = $this->params()->fromQuery('text'); /** @see TheseSearchService */ Loading @@ -67,11 +56,10 @@ class TheseRechercheController extends AbstractController implements SearchContr ]); } /** * @return ViewModel */ public function indexFiltersAction(): ViewModel { $this->restrictFiltersByStructure(); $filters = $this->filters(); $vm = new ViewModel([ Loading @@ -83,34 +71,6 @@ class TheseRechercheController extends AbstractController implements SearchContr return $vm; } // /** // * Pour les acteurs de thèses en général (Doctorant, Dir, Codir, etc.) // * // * @return ViewModel|Response // */ // public function miennesAction() // { // /** @var Role $role */ // $role = $this->userContextService->getSelectedIdentityRole(); // $individu = $this->userContextService->getIdentityIndividu(); // $etats = [These::ETAT_EN_COURS]; // // switch (true) { // case $role->isDoctorant() : // $theses = $this->theseService->getRepository()->findThesesByDoctorantAsIndividu($individu, $etats); // break; // case $role->isActeurDeThese() : // $theses = $this->theseService->getRepository()->findThesesByActeur($individu, $role, $etats); // break; // default: // return $this->redirect()->toRoute('home'); // } // // return new ViewModel([ // 'theses' => $theses, // ]); // } /** * Prévu pour ED, UR, MDD. * Loading Loading @@ -176,4 +136,23 @@ class TheseRechercheController extends AbstractController implements SearchContr ->setDefaultValueAsObject($entity) ->setAllowsEmptyOption(false); } private function restrictFiltersByStructure(): void { $role = $this->userContextService->getSelectedIdentityRole(); if ($role->isEcoleDoctoraleDependant()) { $filter = $this->searchService->getEcoleDoctoraleSearchFilter(); $sc = $role->getStructure()->getEcoleDoctorale(); $filter->setDefaultValueAsObject($sc); } elseif ($role->isUniteRechercheDependant()) { $filter = $this->searchService->getUniteRechercheSearchFilter(); $sc = $role->getStructure()->getUniteRecherche(); $filter->setDefaultValueAsObject($sc); } elseif ($role->isEtablissementDependant()) { $filter = $this->searchService->getEtablissementInscSearchFilter(); $sc = $role->getStructure()->getEtablissement(); $filter->setDefaultValueAsObject($sc); } } } No newline at end of file