Loading module/Acteur/src/Acteur/Entity/Db/Repository/ActeurHDRRepository.php +37 −0 Changes for module/Acteur/src/Acteur/Entity/Db/Repository/ActeurHDRRepository.php: 37 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ use Application\Entity\Db\Role; use HDR\Entity\Db\HDR; use Individu\Entity\Db\Individu; use Soutenance\Entity\Membre; use Soutenance\Entity\Proposition; use Structure\Entity\Db\EcoleDoctorale; use Structure\Entity\Db\Etablissement; Loading Loading @@ -95,6 +96,42 @@ class ActeurHDRRepository extends AbstractActeurRepository // return $qb->getQuery()->getResult(); // } /** * @return Membre[] */ public function findAllActeursPouvantEtrePresidentDuJury(Proposition $proposition) : array { // peuvent être président du jury les membres de rang A // $qb = $this->createQueryBuilder() // ->andWhere('proposition = :proposition')->setParameter('proposition', $proposition) // ->andWhere('qualite.rang = :rang')->setParameter('rang', 'A') // ->addOrderBy('membre.nom', 'ASC'); $qb = $this->createQueryBuilder("acteur") ->addSelect('membre')->join('acteur.membre', 'membre') ->addSelect('individu')->join('acteur.individu', 'individu') ->addSelect('proposition')->join('membre.proposition', 'proposition') ->addSelect('qualite')->join('membre.qualite', 'qualite'); // ->addSelect('acteur')->join('membre.acteur', 'acteur') // NB : une Acteur doit avoir été associé au Membre // peuvent être président du jury les membres de rang A $qb ->andWhere('proposition = :proposition')->setParameter('proposition', $proposition) ->andWhere('qualite.rang = :rang')->setParameter('rang', 'A') ->andWhereNotHistorise('membre') ->addOrderBy('membre.nom', 'ASC'); $garantIndividu = $proposition->getObject() ->getActeursByRoleCode(Role::CODE_HDR_GARANT) ->first() ->getIndividu(); $acteursSansGarant = array_filter($qb->getQuery()->getResult(), fn($acteur) => $acteur->getIndividu() !== $garantIndividu ); return $acteursSansGarant; } public function findActeurForSoutenanceMembre(Membre $soutenanceMembre): ActeurHDR|null { return parent::findActeurForSoutenanceMembre($soutenanceMembre); Loading module/Acteur/src/Acteur/Entity/Db/Repository/ActeurTheseRepository.php +37 −0 Changes for module/Acteur/src/Acteur/Entity/Db/Repository/ActeurTheseRepository.php: 37 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ use Acteur\Entity\Db\ActeurThese; use Application\Entity\Db\Role; use Individu\Entity\Db\Individu; use Soutenance\Entity\Membre; use Soutenance\Entity\Proposition; use Structure\Entity\Db\EcoleDoctorale; use Structure\Entity\Db\Etablissement; use These\Entity\Db\These; Loading Loading @@ -95,6 +96,42 @@ class ActeurTheseRepository extends AbstractActeurRepository return $qb->getQuery()->getResult(); } /** * @return Membre[] */ public function findAllActeursPouvantEtrePresidentDuJury(Proposition $proposition) : array { // peuvent être président du jury les membres de rang A // $qb = $this->createQueryBuilder() // ->andWhere('proposition = :proposition')->setParameter('proposition', $proposition) // ->andWhere('qualite.rang = :rang')->setParameter('rang', 'A') // ->addOrderBy('membre.nom', 'ASC'); $qb = $this->createQueryBuilder("acteur") ->addSelect('membre')->join('acteur.membre', 'membre') ->addSelect('individu')->join('acteur.individu', 'individu') ->addSelect('proposition')->join('membre.proposition', 'proposition') ->addSelect('qualite')->join('membre.qualite', 'qualite'); // ->addSelect('acteur')->join('membre.acteur', 'acteur') // NB : une Acteur doit avoir été associé au Membre // peuvent être président du jury les membres de rang A $qb ->andWhere('proposition = :proposition')->setParameter('proposition', $proposition) ->andWhere('qualite.rang = :rang')->setParameter('rang', 'A') ->andWhereNotHistorise('membre') ->addOrderBy('membre.nom', 'ASC'); $directeurIndividu = $proposition->getObject() ->getActeursByRoleCode(Role::CODE_DIRECTEUR_THESE) ->first() ->getIndividu(); $acteursSansDirectionThese = array_filter($qb->getQuery()->getResult(), fn($acteur) => $acteur->getIndividu() !== $directeurIndividu ); return $acteursSansDirectionThese; } public function findActeurForSoutenanceMembre(Membre $soutenanceMembre): ActeurThese|null { return parent::findActeurForSoutenanceMembre($soutenanceMembre); Loading module/HDR/src/HDR/Service/HDRService.php +0 −7 Changes for module/HDR/src/HDR/Service/HDRService.php: 0 added lines, 7 removed lines. Original line number Diff line number Diff line Loading @@ -246,13 +246,6 @@ class HDRService extends BaseService if ($hdr->getUniteRecherche()) $pdcData->setUniteRecherche($hdr->getUniteRecherche()->getStructure()->getLibelle()); // chemins vers les logos if ($comue = $this->etablissementService->fetchEtablissementComue()) { try { $pdcData->setLogoCOMUE($this->fichierStorageService->getFileForLogoStructure($comue->getStructure())); } catch (StorageAdapterException $e) { $pdcData->setLogoCOMUE(null); } } try { $pdcData->setLogoEtablissement($this->fichierStorageService->getFileForLogoStructure($hdr->getEtablissement()->getStructure())); } catch (StorageAdapterException $e) { Loading module/Soutenance/config/others/presoutenance.config.php +24 −0 Changes for module/Soutenance/config/others/presoutenance.config.php: 24 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -89,6 +89,8 @@ return [ 'controller' => PresoutenanceController::class, 'action' => [ 'associer-jury', 'renseigner-president-jury', 'dissocier-president-jury', // 'deassocier-jury', // 'associer-jury-sygal' ], Loading Loading @@ -336,6 +338,28 @@ return [ ], ], ], 'renseigner-president-jury' => [ 'type' => Segment::class, 'may_terminate' => true, 'options' => [ 'route' => '/renseigner-president-jury/:acteur', 'defaults' => [ 'controller' => PresoutenanceController::class, 'action' => 'renseigner-president-jury', ], ], ], 'dissocier-president-jury' => [ 'type' => Segment::class, 'may_terminate' => true, 'options' => [ 'route' => '/dissocier-president-jury/:acteur', 'defaults' => [ 'controller' => PresoutenanceController::class, 'action' => 'dissocier-president-jury', ], ], ], 'notifier-demande-avis-soutenance' => [ 'type' => Segment::class, 'may_terminate' => true, Loading module/Soutenance/config/others/presoutenanceHDR.config.php +3 −1 Changes for module/Soutenance/config/others/presoutenanceHDR.config.php: 3 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -85,7 +85,9 @@ return [ 'action' => [ 'associer-jury', 'deassocier-jury', 'associer-jury-sygal' 'associer-jury-sygal', 'renseigner-president-jury', 'dissocier-president-jury', ], 'privileges' => PresoutenancePrivileges::PRESOUTENANCE_ASSOCIATION_MEMBRE_INDIVIDU, ], Loading Loading
module/Acteur/src/Acteur/Entity/Db/Repository/ActeurHDRRepository.php +37 −0 Changes for module/Acteur/src/Acteur/Entity/Db/Repository/ActeurHDRRepository.php: 37 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ use Application\Entity\Db\Role; use HDR\Entity\Db\HDR; use Individu\Entity\Db\Individu; use Soutenance\Entity\Membre; use Soutenance\Entity\Proposition; use Structure\Entity\Db\EcoleDoctorale; use Structure\Entity\Db\Etablissement; Loading Loading @@ -95,6 +96,42 @@ class ActeurHDRRepository extends AbstractActeurRepository // return $qb->getQuery()->getResult(); // } /** * @return Membre[] */ public function findAllActeursPouvantEtrePresidentDuJury(Proposition $proposition) : array { // peuvent être président du jury les membres de rang A // $qb = $this->createQueryBuilder() // ->andWhere('proposition = :proposition')->setParameter('proposition', $proposition) // ->andWhere('qualite.rang = :rang')->setParameter('rang', 'A') // ->addOrderBy('membre.nom', 'ASC'); $qb = $this->createQueryBuilder("acteur") ->addSelect('membre')->join('acteur.membre', 'membre') ->addSelect('individu')->join('acteur.individu', 'individu') ->addSelect('proposition')->join('membre.proposition', 'proposition') ->addSelect('qualite')->join('membre.qualite', 'qualite'); // ->addSelect('acteur')->join('membre.acteur', 'acteur') // NB : une Acteur doit avoir été associé au Membre // peuvent être président du jury les membres de rang A $qb ->andWhere('proposition = :proposition')->setParameter('proposition', $proposition) ->andWhere('qualite.rang = :rang')->setParameter('rang', 'A') ->andWhereNotHistorise('membre') ->addOrderBy('membre.nom', 'ASC'); $garantIndividu = $proposition->getObject() ->getActeursByRoleCode(Role::CODE_HDR_GARANT) ->first() ->getIndividu(); $acteursSansGarant = array_filter($qb->getQuery()->getResult(), fn($acteur) => $acteur->getIndividu() !== $garantIndividu ); return $acteursSansGarant; } public function findActeurForSoutenanceMembre(Membre $soutenanceMembre): ActeurHDR|null { return parent::findActeurForSoutenanceMembre($soutenanceMembre); Loading
module/Acteur/src/Acteur/Entity/Db/Repository/ActeurTheseRepository.php +37 −0 Changes for module/Acteur/src/Acteur/Entity/Db/Repository/ActeurTheseRepository.php: 37 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ use Acteur\Entity\Db\ActeurThese; use Application\Entity\Db\Role; use Individu\Entity\Db\Individu; use Soutenance\Entity\Membre; use Soutenance\Entity\Proposition; use Structure\Entity\Db\EcoleDoctorale; use Structure\Entity\Db\Etablissement; use These\Entity\Db\These; Loading Loading @@ -95,6 +96,42 @@ class ActeurTheseRepository extends AbstractActeurRepository return $qb->getQuery()->getResult(); } /** * @return Membre[] */ public function findAllActeursPouvantEtrePresidentDuJury(Proposition $proposition) : array { // peuvent être président du jury les membres de rang A // $qb = $this->createQueryBuilder() // ->andWhere('proposition = :proposition')->setParameter('proposition', $proposition) // ->andWhere('qualite.rang = :rang')->setParameter('rang', 'A') // ->addOrderBy('membre.nom', 'ASC'); $qb = $this->createQueryBuilder("acteur") ->addSelect('membre')->join('acteur.membre', 'membre') ->addSelect('individu')->join('acteur.individu', 'individu') ->addSelect('proposition')->join('membre.proposition', 'proposition') ->addSelect('qualite')->join('membre.qualite', 'qualite'); // ->addSelect('acteur')->join('membre.acteur', 'acteur') // NB : une Acteur doit avoir été associé au Membre // peuvent être président du jury les membres de rang A $qb ->andWhere('proposition = :proposition')->setParameter('proposition', $proposition) ->andWhere('qualite.rang = :rang')->setParameter('rang', 'A') ->andWhereNotHistorise('membre') ->addOrderBy('membre.nom', 'ASC'); $directeurIndividu = $proposition->getObject() ->getActeursByRoleCode(Role::CODE_DIRECTEUR_THESE) ->first() ->getIndividu(); $acteursSansDirectionThese = array_filter($qb->getQuery()->getResult(), fn($acteur) => $acteur->getIndividu() !== $directeurIndividu ); return $acteursSansDirectionThese; } public function findActeurForSoutenanceMembre(Membre $soutenanceMembre): ActeurThese|null { return parent::findActeurForSoutenanceMembre($soutenanceMembre); Loading
module/HDR/src/HDR/Service/HDRService.php +0 −7 Changes for module/HDR/src/HDR/Service/HDRService.php: 0 added lines, 7 removed lines. Original line number Diff line number Diff line Loading @@ -246,13 +246,6 @@ class HDRService extends BaseService if ($hdr->getUniteRecherche()) $pdcData->setUniteRecherche($hdr->getUniteRecherche()->getStructure()->getLibelle()); // chemins vers les logos if ($comue = $this->etablissementService->fetchEtablissementComue()) { try { $pdcData->setLogoCOMUE($this->fichierStorageService->getFileForLogoStructure($comue->getStructure())); } catch (StorageAdapterException $e) { $pdcData->setLogoCOMUE(null); } } try { $pdcData->setLogoEtablissement($this->fichierStorageService->getFileForLogoStructure($hdr->getEtablissement()->getStructure())); } catch (StorageAdapterException $e) { Loading
module/Soutenance/config/others/presoutenance.config.php +24 −0 Changes for module/Soutenance/config/others/presoutenance.config.php: 24 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -89,6 +89,8 @@ return [ 'controller' => PresoutenanceController::class, 'action' => [ 'associer-jury', 'renseigner-president-jury', 'dissocier-president-jury', // 'deassocier-jury', // 'associer-jury-sygal' ], Loading Loading @@ -336,6 +338,28 @@ return [ ], ], ], 'renseigner-president-jury' => [ 'type' => Segment::class, 'may_terminate' => true, 'options' => [ 'route' => '/renseigner-president-jury/:acteur', 'defaults' => [ 'controller' => PresoutenanceController::class, 'action' => 'renseigner-president-jury', ], ], ], 'dissocier-president-jury' => [ 'type' => Segment::class, 'may_terminate' => true, 'options' => [ 'route' => '/dissocier-president-jury/:acteur', 'defaults' => [ 'controller' => PresoutenanceController::class, 'action' => 'dissocier-president-jury', ], ], ], 'notifier-demande-avis-soutenance' => [ 'type' => Segment::class, 'may_terminate' => true, Loading
module/Soutenance/config/others/presoutenanceHDR.config.php +3 −1 Changes for module/Soutenance/config/others/presoutenanceHDR.config.php: 3 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -85,7 +85,9 @@ return [ 'action' => [ 'associer-jury', 'deassocier-jury', 'associer-jury-sygal' 'associer-jury-sygal', 'renseigner-president-jury', 'dissocier-president-jury', ], 'privileges' => PresoutenancePrivileges::PRESOUTENANCE_ASSOCIATION_MEMBRE_INDIVIDU, ], Loading