Commit d5fb1af7 authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

[FIX] Rapports CSI : les filtres de recherche Etablissement, ED et UR ne...

[FIX] Rapports CSI : les filtres de recherche Etablissement, ED et UR ne tenaient pas compte des substitutions de structures
parent 5c21f1be
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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.
+24 −3
Original line number Diff line number Diff line
@@ -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;
@@ -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();
            });
@@ -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();
            });
@@ -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);
        }
+3 −3
Original line number Diff line number Diff line
@@ -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"); ?>">
@@ -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()]);
@@ -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>