Loading CHANGELOG.md +1 −0 Original line number Diff line number Diff line Loading @@ -5,6 +5,7 @@ Journal des modifications ----- - [FIX] Signature de méthode setObject() modifiée en PHP8 dans Doctrine\Laminas\Hydrator\Strategy\AbstractCollectionStrategy. - [FIX] Page de couverture : utilisation de mb_strtoupper pour mettre les noms en majuscules même si elles sont accentuées. - [FIX] Rapports CSI : les filtres de recherche Etablissement, ED et UR ne tenaient pas compte des substitutions de structures. - Mise en place d'une zone de dépot du pv de soutrenance sur la page de présoutenance - Rapport d'activité : implémentation pour les rapports de fin de contrat du même circuit de validation/avis que les annuels. - Affichage du nom complet d'un individu : choc de simplification en supprimant 2 options d'affichage dans le formatteur. Loading module/Application/src/Application/Service/Rapport/RapportSearchService.php +24 −3 Original line number Diff line number Diff line Loading @@ -5,6 +5,7 @@ namespace Application\Service\Rapport; use Application\Entity\Db\Interfaces\TypeRapportAwareTrait; use Application\Entity\Db\Interfaces\TypeValidationAwareTrait; use Application\Filter\AnneeUnivFormatter; use Application\QueryBuilder\DefaultQueryBuilder; use Application\Search\Filter\SearchFilter; use Application\Search\Filter\SelectSearchFilter; use Application\Search\Filter\TextSearchFilter; Loading Loading @@ -80,7 +81,11 @@ class RapportSearchService extends SearchService public function init() { $etablissementInscrFilter = $this->getEtablissementTheseSearchFilter() ->setWhereField('etab.sourceCode') ->setQueryBuilderApplier(function (SelectSearchFilter $filter, DefaultQueryBuilder $qb) { $qb ->andWhere('etab.sourceCode = :sourceCodeEtab OR etab_structureSubstituante.sourceCode = :sourceCodeEtab') ->setParameter('sourceCodeEtab', $filter->getValue()); }) ->setDataProvider(function() { return $this->fetchEtablissements(); }); Loading @@ -89,12 +94,20 @@ class RapportSearchService extends SearchService return $this->fetchOriginesFinancements(); }); $uniteRechercheFilter = $this->getUniteRechercheSearchFilter() ->setWhereField('ur.sourceCode') ->setQueryBuilderApplier(function (SelectSearchFilter $filter, DefaultQueryBuilder $qb) { $qb ->andWhere('ur.sourceCode = :sourceCodeUR OR ur_structureSubstituante.sourceCode = :sourceCodeUR') ->setParameter('sourceCodeUR', $filter->getValue()); }) ->setDataProvider(function() { return $this->fetchUnitesRecherches(); }); $ecoleDoctoraleFilter = $this->getEcoleDoctoraleSearchFilter() ->setWhereField('ed.sourceCode') ->setQueryBuilderApplier(function (SelectSearchFilter $filter, DefaultQueryBuilder $qb) { $qb ->andWhere('ed.sourceCode = :sourceCodeED OR ed_structureSubstituante.sourceCode = :sourceCodeED') ->setParameter('sourceCodeED', $filter->getValue()); }) ->setDataProvider(function() { return $this->fetchEcolesDoctorales(); }); Loading Loading @@ -299,6 +312,14 @@ class RapportSearchService extends SearchService ->leftJoin("these.uniteRecherche", 'ur') ->andWhereNotHistorise(); $qb ->leftJoin('etab.structure', 'etab_structure')->addSelect('etab_structure') ->leftJoin('ed.structure', 'ed_structure')->addSelect('ed_structure') ->leftJoin('ur.structure', 'ur_structure')->addSelect('ur_structure') ->leftJoinStructureSubstituante('etab_structure', 'etab_structureSubstituante') ->leftJoinStructureSubstituante('ed_structure', 'ed_structureSubstituante') ->leftJoinStructureSubstituante('ur_structure', 'ur_structureSubstituante'); if ($this->typeRapport !== null) { $qb->andWhere('tr = :type')->setParameter('type', $this->typeRapport); } Loading module/Application/view/application/rapport/partial/rapports-table.phtml +3 −3 Original line number Diff line number Diff line Loading @@ -127,7 +127,7 @@ $acteursFormatterCodirecteurs->asSeparated() Document </th> <?php if ($displayAvis): ?> <?php if ($displayAvis ?? false): ?> <th> <a href="<?php echo $s = $this->sortable(RapportSearchService::NAME_avis); ?>" title="<?php echo $this->translate("Avis"); ?>"> Loading Loading @@ -239,7 +239,7 @@ $acteursFormatterCodirecteurs->asSeparated() <?php endif; ?> </td> <?php if ($displayAvis): ?> <?php if ($displayAvis ?? false): ?> <td> <?php $returnUrl = $returnUrl ?: $this->url($routeName . '/consulter', ['these' => $these->getId()]); Loading Loading @@ -309,7 +309,7 @@ $acteursFormatterCodirecteurs->asSeparated() <td class="action"> <?php if ($canDel): ?> <a href="<?php echo $this->url($routeName . '/supprimer', ['rapport' => $rapport->getId()], ['query' => ['redirect' => $returnUrl]]) ?>" <a href="<?php echo $this->url($routeName . '/supprimer', ['rapport' => $rapport->getId()], ['query' => ['redirect' => $returnUrl ?? '']]) ?>" title="Supprimer ce rapport ?" data-bs-toggle="confirmationx" data-message="Êtes-vous sûr·e de vouloir supprimer ce rapport ?"><span class="icon icon-delete iconly"></span></a> Loading Loading
CHANGELOG.md +1 −0 Original line number Diff line number Diff line Loading @@ -5,6 +5,7 @@ Journal des modifications ----- - [FIX] Signature de méthode setObject() modifiée en PHP8 dans Doctrine\Laminas\Hydrator\Strategy\AbstractCollectionStrategy. - [FIX] Page de couverture : utilisation de mb_strtoupper pour mettre les noms en majuscules même si elles sont accentuées. - [FIX] Rapports CSI : les filtres de recherche Etablissement, ED et UR ne tenaient pas compte des substitutions de structures. - Mise en place d'une zone de dépot du pv de soutrenance sur la page de présoutenance - Rapport d'activité : implémentation pour les rapports de fin de contrat du même circuit de validation/avis que les annuels. - Affichage du nom complet d'un individu : choc de simplification en supprimant 2 options d'affichage dans le formatteur. Loading
module/Application/src/Application/Service/Rapport/RapportSearchService.php +24 −3 Original line number Diff line number Diff line Loading @@ -5,6 +5,7 @@ namespace Application\Service\Rapport; use Application\Entity\Db\Interfaces\TypeRapportAwareTrait; use Application\Entity\Db\Interfaces\TypeValidationAwareTrait; use Application\Filter\AnneeUnivFormatter; use Application\QueryBuilder\DefaultQueryBuilder; use Application\Search\Filter\SearchFilter; use Application\Search\Filter\SelectSearchFilter; use Application\Search\Filter\TextSearchFilter; Loading Loading @@ -80,7 +81,11 @@ class RapportSearchService extends SearchService public function init() { $etablissementInscrFilter = $this->getEtablissementTheseSearchFilter() ->setWhereField('etab.sourceCode') ->setQueryBuilderApplier(function (SelectSearchFilter $filter, DefaultQueryBuilder $qb) { $qb ->andWhere('etab.sourceCode = :sourceCodeEtab OR etab_structureSubstituante.sourceCode = :sourceCodeEtab') ->setParameter('sourceCodeEtab', $filter->getValue()); }) ->setDataProvider(function() { return $this->fetchEtablissements(); }); Loading @@ -89,12 +94,20 @@ class RapportSearchService extends SearchService return $this->fetchOriginesFinancements(); }); $uniteRechercheFilter = $this->getUniteRechercheSearchFilter() ->setWhereField('ur.sourceCode') ->setQueryBuilderApplier(function (SelectSearchFilter $filter, DefaultQueryBuilder $qb) { $qb ->andWhere('ur.sourceCode = :sourceCodeUR OR ur_structureSubstituante.sourceCode = :sourceCodeUR') ->setParameter('sourceCodeUR', $filter->getValue()); }) ->setDataProvider(function() { return $this->fetchUnitesRecherches(); }); $ecoleDoctoraleFilter = $this->getEcoleDoctoraleSearchFilter() ->setWhereField('ed.sourceCode') ->setQueryBuilderApplier(function (SelectSearchFilter $filter, DefaultQueryBuilder $qb) { $qb ->andWhere('ed.sourceCode = :sourceCodeED OR ed_structureSubstituante.sourceCode = :sourceCodeED') ->setParameter('sourceCodeED', $filter->getValue()); }) ->setDataProvider(function() { return $this->fetchEcolesDoctorales(); }); Loading Loading @@ -299,6 +312,14 @@ class RapportSearchService extends SearchService ->leftJoin("these.uniteRecherche", 'ur') ->andWhereNotHistorise(); $qb ->leftJoin('etab.structure', 'etab_structure')->addSelect('etab_structure') ->leftJoin('ed.structure', 'ed_structure')->addSelect('ed_structure') ->leftJoin('ur.structure', 'ur_structure')->addSelect('ur_structure') ->leftJoinStructureSubstituante('etab_structure', 'etab_structureSubstituante') ->leftJoinStructureSubstituante('ed_structure', 'ed_structureSubstituante') ->leftJoinStructureSubstituante('ur_structure', 'ur_structureSubstituante'); if ($this->typeRapport !== null) { $qb->andWhere('tr = :type')->setParameter('type', $this->typeRapport); } Loading
module/Application/view/application/rapport/partial/rapports-table.phtml +3 −3 Original line number Diff line number Diff line Loading @@ -127,7 +127,7 @@ $acteursFormatterCodirecteurs->asSeparated() Document </th> <?php if ($displayAvis): ?> <?php if ($displayAvis ?? false): ?> <th> <a href="<?php echo $s = $this->sortable(RapportSearchService::NAME_avis); ?>" title="<?php echo $this->translate("Avis"); ?>"> Loading Loading @@ -239,7 +239,7 @@ $acteursFormatterCodirecteurs->asSeparated() <?php endif; ?> </td> <?php if ($displayAvis): ?> <?php if ($displayAvis ?? false): ?> <td> <?php $returnUrl = $returnUrl ?: $this->url($routeName . '/consulter', ['these' => $these->getId()]); Loading Loading @@ -309,7 +309,7 @@ $acteursFormatterCodirecteurs->asSeparated() <td class="action"> <?php if ($canDel): ?> <a href="<?php echo $this->url($routeName . '/supprimer', ['rapport' => $rapport->getId()], ['query' => ['redirect' => $returnUrl]]) ?>" <a href="<?php echo $this->url($routeName . '/supprimer', ['rapport' => $rapport->getId()], ['query' => ['redirect' => $returnUrl ?? '']]) ?>" title="Supprimer ce rapport ?" data-bs-toggle="confirmationx" data-message="Êtes-vous sûr·e de vouloir supprimer ce rapport ?"><span class="icon icon-delete iconly"></span></a> Loading