Project

General

Profile

Development #34808

base adresse: être compatible avec l'autocomplétion wcs en supportant q= et id=

Added by Thomas Noël 8 months ago. Updated 25 days ago.

Status:
Rejeté
Priority:
Normal
Assignee:
-
Target version:
-
Start date:
13 Jul 2019
Due date:
% Done:

0%

Patch proposed:
Yes
Planning:
No

Description

En fait ce n'est pas possible nativement, car les id renvoyés par la BAN ne sont pas retrouvables ensuite.

Mais on pourrait faire cette ruse :
  • La recherche avec q= donne un ensemble de résultat avec des id, et pour chaque lat et lon. On remplace l'id de chaque élément par id-lat-lon
  • Lorsqu'on reçoit ensuite id=id-lat-lon, on fait d'abord une recherche inverse sur lat et lon, qui va renvoyer un résultat qui, sauf bogue de la BAN, doit renvoyer l'élement (l'adresse) avec le même id, et voilà

0001-base_adresse-normalize-endpoint-34808-DRAFT.patch View (3.88 KB) Thomas Noël, 13 Jul 2019 12:32 AM

History

#1 Updated by Thomas Noël 8 months ago

J'ai joué avec l'idée et ça semble marcher très bien... mais bon, c'est assez empirique et ça me plait moyennement.

(Le code est plutôt sale, copié collé de search et reverse ; pour un vrai patch faudrait factoriser les choses et aussi mettre ce connecteur au gout du jour)

#2 Updated by Benjamin Dauvergne 7 months ago

Et simplement mettre en cache les id pendant un certain temps (en plus de ta technique) ?

Une fois que la donnée est stockée on ne demandera plus jamais l'adresse via l'id, normalement.

#3 Updated by Benjamin Dauvergne 7 months ago

Aussi je vois que tu fais un reverse sur lat/long mais tu ne vérifies pas si l'id retourné est le même.

#4 Updated by Thomas Noël 7 months ago

Benjamin Dauvergne a écrit :

Et simplement mettre en cache les id pendant un certain temps (en plus de ta technique) ?
Une fois que la donnée est stockée on ne demandera plus jamais l'adresse via l'id, normalement.

J'y ai pensé mais le cache de Django n'est pas partagé entre les différentes machines, faudrait cacher dans la base, j'avais plutôt envie de voir comment "faire sans".

Aussi je vois que tu fais un reverse sur lat/long mais tu ne vérifies pas si l'id retourné est le même.

Oui c'est juste un draft que je posais ici pour montrer que le principe me semble ok ; j'ai juste vérifié "à la main" ensuite plein d'adresses un peu au pif et ça marchait bien.

Ah, aussi, comme j'ai choisi le "-" en séparateur, on ne peut pas habiter à l'ouest du méridien de greenwich, comme quoi c'est vraiment un draft.

Je verrais à peaufiner l'affaire si on pense que le principe est ok (et si c'est utile).

#5 Updated by Benjamin Dauvergne 7 months ago

Thomas Noël a écrit :

J'y ai pensé mais le cache de Django n'est pas partagé entre les différentes machines, faudrait cacher dans la base, j'avais plutôt envie de voir comment "faire sans".

En fait mettre en cache en base à la volée ne me parait pas déconnant dans un premier temps alors.

#6 Updated by Valentin Deniaud 25 days ago

  • Status changed from Nouveau to Rejeté

L'aventure continue dans #39387.

Also available in: Atom PDF