Commit 98d4cfe0 authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

[FIX] Recherche autocomplete établissement/ED/UR : bug empêchant la recherche...

[FIX] Recherche autocomplete établissement/ED/UR : bug empêchant la recherche (systématiquement aucun résultat).
parent 263c9bf4
Loading
Loading
Loading
Loading
+1 −0
Changes for CHANGELOG.md: 1 added line, 0 removed lines.
Original line number Diff line number Diff line
@@ -10,6 +10,7 @@ Journal des modifications
- [FIX] Module formation : élimination des ED historisées dans la liste des structures complémentaires ajoutables à une session.
- [FIX] Module formation : changement du type de retour dans le trait StructureAwareTrait.
- [FIX] Recherche de thèses : amélioration de l'affichage et du tri des structures dans les filtres.
- [FIX] Recherche autocomplete établissement/ED/UR : bug empêchant la recherche (systématiquement aucun résultat).

7.0.0
-----
+2 −3
Changes for module/Application/src/Application/Search/Filter/SearchFilterValueInterface.php: 2 added lines, 3 removed lines.
Original line number Diff line number Diff line
@@ -5,8 +5,7 @@ namespace Application\Search\Filter;
interface SearchFilterValueInterface
{
    /**
     * Retourne cette instance convertie dans un format utilisable dans
     * {@see SelectSearchFilter::createValueOptionsFromData()}.
     * Convertie l'instance courante dans un format utilisable par {@see SelectSearchFilter::createValueOptionsFromData()}.
     *
     * Exemples de valeurs retournées possibles :
     * ```
@@ -14,7 +13,7 @@ interface SearchFilterValueInterface
     * `['value' => 'UCN', 'label' => "Unicaen", 'subtext' => "Université de Caen"]`
     * ```
     *
     * @return array
     * @return array[]
     */
    public function createSearchFilterValueOption(): array ;
}
 No newline at end of file
+4 −6
Changes for module/Structure/src/Structure/Controller/EcoleDoctoraleController.php: 4 added lines, 6 removed lines.
Original line number Diff line number Diff line
@@ -114,15 +114,13 @@ class EcoleDoctoraleController extends StructureConcreteController
            $unites = $this->getEcoleDoctoraleService()->getRepository()->findByText($term);
            $result = [];
            foreach ($unites as $unite) {
                /** Attention à être cohérent avec {@see EcoleDoctorale::createSearchFilterValueOption() } */
                $result[] = array(
                    'id' => $unite->getId(),            // identifiant unique de l'item
                    'label' => $unite->getStructure()->getLibelle(),    // libellé de l'item
                    'extra' => $unite->getStructure()->getSigle(),      // infos complémentaires (facultatives) sur l'item
                    'id' => $unite['id'], // identifiant unique de l'item
                    'label' => sprintf('%s - %s', $unite['structure']['code'], $unite['structure']['libelle']), // libellé de l'item
                    'extra' => null, // infos complémentaires (facultatives) sur l'item
                );
            }
            usort($result, function ($a, $b) {
                return strcmp($a['label'], $b['label']);
            });

            return new JsonModel($result);
        }
+14 −11
Changes for module/Structure/src/Structure/Controller/EtablissementController.php: 14 added lines, 11 removed lines.
Original line number Diff line number Diff line
@@ -163,18 +163,21 @@ class EtablissementController extends StructureConcreteController
    public function rechercherAction()
    {
        if (($term = $this->params()->fromQuery('term'))) {
            $unites = $this->getEtablissementService()->getRepository()->findByText($term);
            $etabs = $this->getEtablissementService()->getRepository()->findByText($term);
            $result = [];
            foreach ($unites as $unite) {
                $result[] = array(
                    'id' => $unite->getId(),            // identifiant unique de l'item
                    'label' => $unite->getStructure()->getLibelle(),    // libellé de l'item
                    'extra' => $unite->getStructure()->getSigle(),      // infos complémentaires (facultatives) sur l'item
                );
            }
            usort($result, function ($a, $b) {
                return strcmp($a['label'], $b['label']);
            });
            foreach ($etabs as $etab) {
                $label = $etab['structure']['libelle'];
                if ($etab['structure']['sigle']) {
                    $label .= sprintf(' (%s)', $etab['structure']['sigle']);
                }
                $result[] = [
                    /** Attention à être cohérent avec {@see Etablissement::createSearchFilterValueOption() } */
                    'id' => $etab['id'], // identifiant unique de l'item
                    'label' => $label, // libellé de l'item
                    'extra' => $etab['structure']['estFermee'] ? 'Fermé' : null, // infos complémentaires (facultatives) sur l'item
                ];
            }
            usort($result, fn($a, $b) => $a['label'] <=> $b['label']);

            return new JsonModel($result);
        }
+8 −6
Changes for module/Structure/src/Structure/Controller/UniteRechercheController.php: 8 added lines, 6 removed lines.
Original line number Diff line number Diff line
@@ -223,15 +223,17 @@ class UniteRechercheController extends StructureConcreteController
            $unites = $this->getUniteRechercheService()->getRepository()->findByText($term);
            $result = [];
            foreach ($unites as $unite) {
                /** Attention à être cohérent avec {@see UniteRecherche::createSearchFilterValueOption() } */
                $label = sprintf('%s - %s', $unite['structure']['sigle'] ?: '???', $unite['structure']['libelle']);
                if ($unite['structure']['code']) {
                    $label .= sprintf(' (%s)', $unite['structure']['code']);
                }
                $result[] = array(
                    'id' => $unite->getId(),            // identifiant unique de l'item
                    'label' => $unite->getStructure()->getLibelle(),    // libellé de l'item
                    'extra' => $unite->getStructure()->getSigle(),      // infos complémentaires (facultatives) sur l'item
                    'id' => $unite['id'], // identifiant unique de l'item
                    'label' => $label, // libellé de l'item
                    'extra' => null, // infos complémentaires (facultatives) sur l'item
                );
            }
            usort($result, function ($a, $b) {
                return strcmp($a['label'], $b['label']);
            });

            return new JsonModel($result);
        }
Loading