Project

General

Profile

Development #23534

Configuration multi-moteurs de la cellule de recherche

Added by Frédéric Péters almost 5 years ago. Updated about 4 years ago.

Status:
Fermé
Priority:
Normal
Assignee:
-
Target version:
-
Start date:
02 May 2018
Due date:
% Done:

0%

Estimated time:
Patch proposed:
Yes
Planning:

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.


Files


Related issues

Related to Publik - Development #19756: Personnalisation accrue du portail agent pour en faire aussi la page d'entrée des agents d'accueilFermé29 October 201730 June 2018

Actions
Related to Combo - Development #25620: permettre à une application de déclarer ses propres moteurs de rechercheFermé09 August 2018

Actions

Associated revisions

Revision 44a54622 (diff)
Added by Thomas Noël over 4 years ago

search: handle several search engines (#23534)

Revision 9c694209 (diff)
Added by Frédéric Péters over 4 years ago

search: add custom widget to sort and enable engines (#23534)

History

#1

Updated by Frédéric Péters almost 5 years ago

  • Related to Development #19756: Personnalisation accrue du portail agent pour en faire aussi la page d'entrée des agents d'accueil added
#2

Updated by Frédéric Péters over 4 years ago

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.

#3

Updated by Thomas Noël over 4 years ago

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é.

#4

Updated by Frédéric Péters over 4 years ago

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)).

#5

Updated by Frédéric Péters over 4 years ago

  • Related to Development #25620: permettre à une application de déclarer ses propres moteurs de recherche added
#6

Updated by Frédéric Péters over 4 years ago

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.

#7

Updated by Thomas Noël over 4 years ago

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

#8

Updated by Thomas Noël over 4 years ago

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

#9

Updated by Thomas Noël over 4 years ago

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 ?)

#10

Updated by Frédéric Péters over 4 years ago

  • Status changed from Solution proposée to 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.

#11

Updated by Thomas Noël over 4 years ago

  • Status changed from Solution validée to 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)

#12

Updated by Frédéric Péters about 4 years ago

  • Status changed from Résolu (à déployer) to Solution déployée

Also available in: Atom PDF