Projet

Général

Profil

Bug #15352

cellule recherche : ce qui est après un # n'est pas envoyé

Ajouté par Thomas Noël il y a environ 7 ans. Mis à jour il y a plus de 5 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
08 mars 2017
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

Description

En fait c'est parce que le $.get(url, data, ...) qui est lancé pour faire l'appel ajax pour construire la réponse, n'encode pas data.


Fichiers

Révisions associées

Révision 1709b97f (diff)
Ajouté par Thomas Noël il y a environ 7 ans

searchcell: encode and quote q value in search url (#15352)

Historique

#1

Mis à jour par Thomas Noël il y a environ 7 ans

#2

Mis à jour par Serghei Mihai (congés, retour 15/05) il y a environ 7 ans

ok pour moi

#3

Mis à jour par Benjamin Dauvergne il y a environ 7 ans

Pas ack, le souci est entre la chaise et le clavier je pense :) Il n'est normalement pas nécessaire d'encoder, et tout cas la doc jquery n'en parle nulle part et un test de jQuery.param() encode bien les '#'.

#4

Mis à jour par Thomas Noël il y a environ 7 ans

  • Patch proposed changé de Oui à Non

Effectivement c'est pas là que ça se passe.

#5

Mis à jour par Thomas Noël il y a environ 7 ans

Voilà il fallait encoder correctement lors du « url % {'q': query} » qui poser la chaîne à rechercher dans l'URL du système distant (zoo dans mon usage actuel).

Et non, j'ai pas trouvé plus élégant qu'un explicite quote(query.encode('utf-8'))

#6

Mis à jour par Benjamin Dauvergne il y a environ 7 ans

Ça a l'air bon. Mais le code est moche (voir https://docs.djangoproject.com/fr/1.10/ref/utils/#django.utils.http.urlencode). J'ai l'impression qu'on est obligé de mettre un un %(q)s dans search_services['url'] alors qu'on pourrait juste faire url + '?' + urlencode({'q': whatever}).

#7

Mis à jour par Thomas Noël il y a environ 7 ans

Benjamin Dauvergne a écrit :

qu'on pourrait juste faire url + '?' + urlencode({'q': whatever}).

Ouaip. Mais ça voudra dire qu'on ne se permet d'interroger que des systèmes qui prennent « ?q= ». On peut sans doute considérer que c'est ainsi, et faire que les APIs de recherche interne dans les briques de Publik suivent cette norme. Je vais faire le patch avec cette alternative.

#8

Mis à jour par Thomas Noël il y a environ 7 ans

Voilà un patch plus "propre" mais qui oblige à des API de recherche en ?q=...

#9

Mis à jour par Thomas Noël il y a environ 7 ans

(posé sur la dev de nanterre)

#10

Mis à jour par Frédéric Péters il y a environ 7 ans

La version initiale, qui ne nous force pas au ?q=, elle me convient quand même plutôt bien.

#11

Mis à jour par Thomas Noël il y a environ 7 ans

  • Statut changé de En cours à Résolu (à déployer)

Moi aussi. Poussée donc cette version avec {'q': quote(query.encode('utf-8'))}

commit 1709b97f09c3edf5a86853a6dfd42b09572ea90b
Author: Thomas NOEL <tnoel@entrouvert.com>
Date:   Wed Mar 8 16:58:00 2017 +0100

    searchcell: encode and quote q value in search url (#15352)

#12

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

Formats disponibles : Atom PDF