Development #23534
Configuration multi-moteurs de la cellule de recherche
0%
Description
Étendre le paramétrage de la cellule pour lui permettre de chercher dans plusieurs moteurs à la fois; l'idée derrière est côté agent accueil de pouvoir ainsi chercher en même temps dans les usagers, dans les numéros de facture, dans les demandes, etc.
Dans point de vue UI ne pas chercher à mélanger les résultats, comme une recherche dans gnome-shell regrouper par moteur et si trop de résultats proposer un lien pour les afficher tous.
Sans doute plutôt travailler en front pour paralléliser facilement les requêtes et permettre par la suite des évolutions pour facilement (dé)cocher un moteur, pour filtrer les résultats.
Fichiers
Demandes liées
Révisions associées
search: add custom widget to sort and enable engines (#23534)
Historique
Mis à jour par Frédéric Péters il y a presque 6 ans
- Lié à Development #19756: Personnalisation accrue du portail agent pour en faire aussi la page d'entrée des agents d'accueil ajouté
Mis à jour par Frédéric Péters il y a plus de 5 ans
Côté modèle et /manage/,
1, le stockage, je passerais juste par un nouvel attribut, jsonfield, et une migration l'initialiserait avec {"engines": [celui qui était là]}.
2, l'ui, ignorons le choix d'un ordre, et ça me semble juste pouvoir passer avec forms.widgets.CheckboxSelectMultiple pour produire une série de cases à cocher.
Mis à jour par Thomas Noël il y a plus de 5 ans
- Fichier 0001-search-handle-several-search-engines-23534.patch 0001-search-handle-several-search-engines-23534.patch ajouté
- Statut changé de Nouveau à En cours
Voici une première version, à relire déjà pour détecter les éventuelles bétises.
Ce qu'il y manque pour en faire une version validable à mon avis:- une UI de gestion du search_services en backoffice, qui permettrait de faire une selection multiple et ordonnée... je ne sais pas trop sur quel widget partir
- peut-être ajouter la possibilité de faire une rendu de search-cell-results.html selon le moteur utilisé
- et qlq tests avec une cellule qui afficherait plus d'un moteur (mais déjà les tests actuels, légèrement mis à jour, sont ok)
Sinon je pense que le HTML généré est bon, ie ne casse pas les styles en place ; mais j'ai pas testé.
Mis à jour par Frédéric Péters il y a plus de 5 ans
Je viens de commencer à regarder, j'ai poussé dans wip/23534-multi-search une version rebasée (nécessaire pour les tests, passés à webtest depuis, (s/client/app/, en gros)).
Mis à jour par Frédéric Péters il y a plus de 5 ans
- Lié à Development #25620: permettre à une application de déclarer ses propres moteurs de recherche ajouté
Mis à jour par Frédéric Péters il y a plus de 5 ans
J'ai continué, ça s'est mêlé au reste, j'ai tapé une branche wip/guichet avec un peu de tout, mais en rapport direct avec ce ticket :
- d9405a4 search: handle several search engines (#23534)
(patch d'origine)
- 9fde705 search: add custom widget to sort and enable engines (#23534)
UI de configuration.
- 3ab7114 search: remove technical help text (#23534)
Plus trop de sens d'écrire "liste json"
- d194eeb search: don't include engine label if there's a single one (#23534)
Détail.
Concernant l'UI, ça partage pas mal avec combo/apps/wcs/forms.py (genre tout le js) mais ça pourrait partager toute la partie python aussi en modifiant le stockage de la liste des moteurs sélectionnés, la passer d'une liste à un dictionnaire avec une clé data avec dedans la liste.
Mis à jour par Thomas Noël il y a plus de 5 ans
Je reprends sur wip/guichet-toto avec le format {'data': []} et en intégrant directement dans le patch initial tes améliorations (remove technical help text, don't include engine label if there's a single one)
Travail en cours, pas vraiment à relire encore, il reste SearchCell.objects.filter(_search_services__contains='_text').count()
par exemple. Ensuite je pose l'UI qui sera donc partagée avec combo/apps/wcs/forms.py
Mis à jour par Thomas Noël il y a plus de 5 ans
Voilà, c'est poussé sur wip/guichet-toto, c'est-à-dire la partie :
* 4192c88 search: add custom widget to sort and enable engines (#23534) * dcbcc79 search: add a singleton so apps can register their search engines (#25620) * 9f85b90 search: handle several search engines (#23534)
Le reste est juste la reprise de wip/guichet
Mis à jour par Thomas Noël il y a plus de 5 ans
- Fichier 0001-search-handle-several-search-engines-23534.patch 0001-search-handle-several-search-engines-23534.patch ajouté
- Fichier 0002-search-add-a-singleton-so-apps-can-register-their-se.patch 0002-search-add-a-singleton-so-apps-can-register-their-se.patch ajouté
- Fichier 0003-search-add-custom-widget-to-sort-and-enable-engines-.patch 0003-search-add-custom-widget-to-sort-and-enable-engines-.patch ajouté
- Statut changé de En cours à Solution proposée
- Patch proposed changé de Non à Oui
Les patches.
J'ai donc mutualisé le MultiSortWidget dans combo/utils/forms.py
(Peut-être que ça pourrait être dans combo/manager/forms.py vu que le javascript y est ?)
Mis à jour par Frédéric Péters il y a plus de 5 ans
- Statut changé de Solution proposée à Solution validée
Ça me va dans combo/utils/forms.py mais si tu veux le déplacer dans combo/manager/forms.py, ça me va aussi.
Mis à jour par Thomas Noël il y a plus de 5 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 9c69420972424f27e4b85a5d4c4f3f3a26778f99 (HEAD -> master, origin/master, origin/HEAD) Author: Frédéric Péters <fpeters@entrouvert.com> Date: Sat Aug 11 10:35:49 2018 +0200 search: add custom widget to sort and enable engines (#23534) commit 44a54622f4581d1bc09de8f1a7e59a3507833472 Author: Thomas NOEL <tnoel@entrouvert.com> Date: Fri Jul 20 15:42:39 2018 +0200 search: handle several search engines (#23534)
Mis à jour par Frédéric Péters il y a plus de 5 ans
- Statut changé de Résolu (à déployer) à Solution déployée
search: handle several search engines (#23534)