Projet

Général

Profil

Development #39723

paramétrage source de données vs autocomplétion

Ajouté par Frédéric Péters il y a environ 4 ans. Mis à jour il y a plus d'un an.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
10 février 2020
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

L'autocomplétion fait un appel type /api/autocomplete/7b42df45-4c73-4cb5-956f-f46e9a3a213e?q=3+rue+du

et c'est du code qui récupère l'url et fait la requête,

        url = get_session().get_data_source_query_url_from_token(component)
...
        return misc.urlopen(url).read()

sans accès à la source de données et du coup sans pouvoir prêter attention à une configuration du cache (ou autre) de la source de données.


Fichiers


Demandes liées

Dupliqué par w.c.s. - Bug #70847: Le endpoint autocomplete ne reprend pas le paramétrage des sources de donnée JSONFermé29 octobre 2022

Actions

Révisions associées

Révision a21bd6f4 (diff)
Ajouté par Benjamin Dauvergne il y a plus d'un an

api: apply named ds parameters on autocomplete results (#39723)

Révision dddddc92 (diff)
Ajouté par Benjamin Dauvergne il y a plus d'un an

misc: push cache of JSON content in get_json_from_url (#39723)

It allows request_json_items, request_geojson_items and get_geojson_data
to use the cache from get_json_from_url, and cache is then also used in
AutocompleteDirectory.

Historique

#1

Mis à jour par Frédéric Péters il y a plus d'un an

  • Dupliqué par Bug #70847: Le endpoint autocomplete ne reprend pas le paramétrage des sources de donnée JSON ajouté
#2

Mis à jour par Frédéric Péters il y a plus d'un an

  • Sujet changé de cache source de données vs autocomplétion à paramétrage source de données vs autocomplétion
  • Description mis à jour (diff)
#4

Mis à jour par Benjamin Dauvergne il y a plus d'un an

  • Assigné à mis à Benjamin Dauvergne
#5

Mis à jour par Benjamin Dauvergne il y a plus d'un an

Voilà de quoi appliquer data_attribute, id_attribute et text_attribute. Le besoin de cache_duration pour les résultats d'autocomplétion me semble moins évident.

Ça économise un record_error() car les erreurs requests sont déjà loggé dans request_json_items() par get_json_from_url().

Pour appliquer cache_duration on aura du mal à partager du code comme ici, car ça n'est utilisé que par NamedDataSource.get_geojson_data et _get_structured_items().

#6

Mis à jour par Benjamin Dauvergne il y a plus d'un an

Rebasé.

#7

Mis à jour par Frédéric Péters il y a plus d'un an

@relecteurs : si jamais quelqu'un valide en l'état il faut en même temps créer un ticket pour gérer la question du cache.

#9

Mis à jour par Benjamin Dauvergne il y a plus d'un an

J'ai du changer les clés du cache vu que ce ne sont pas les mêmes données qui sont mises en cache (contenu JSON non transformé vs contenu transformé).

#11

Mis à jour par Frédéric Péters il y a plus d'un an

-        assert resp2.json == {'data': [], 'err': '1'}
+        assert resp2.json == {'data': [], 'err': 1}

Si c'est possible j'éviterais de mêler ce changement.

+        cache_key = 'http-cache-%s' % force_str(hashlib.md5(force_bytes(url)).hexdigest())

Je garderais une mention à "datasource" dans le nom.

+        from django.core.cache import cache

Si c'est possible je le placerais avec les autres import en tête de fichier.

#12

Mis à jour par Frédéric Péters il y a plus d'un an

  • Statut changé de Solution proposée à Résolu (à déployer)

J'ai rebasé puis j'ai laissé la modification sur err, sur l'idée que personne ne regarde ça, et intégré les deux autres.

commit dddddc92c8a37d7a40d32cdb3245790548491ab7
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date:   Fri Dec 9 16:24:00 2022 +0100

    misc: push cache of JSON content in get_json_from_url (#39723)

    It allows request_json_items, request_geojson_items and get_geojson_data
    to use the cache from get_json_from_url, and cache is then also used in
    AutocompleteDirectory.

commit a21bd6f4238cee4c7d181f434bc13469282c43fe
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date:   Sat Oct 29 14:54:07 2022 +0200

    api: apply named ds parameters on autocomplete results (#39723)
#13

Mis à jour par Transition automatique il y a plus d'un an

  • Statut changé de Résolu (à déployer) à Solution déployée
#14

Mis à jour par Transition automatique il y a environ un an

Automatic expiration

Formats disponibles : Atom PDF