Projet

Général

Profil

Development #37849

jsondatastore: ajouter &q=plop, filtre sur l'attribut text au endpoint list

Ajouté par Nicolas Roche il y a plus de 4 ans. Mis à jour il y a plus de 4 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
21 novembre 2019
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

filtre pas exact, ici .lower()
et se contenter d'une sous-chaîne


Fichiers


Demandes liées

Lié à Passerelle - Development #29889: jsondatastore : endpoint de recherche Fermé18 janvier 2019

Actions
Lié à Passerelle - Development #38215: endpoint; permettre un long_description sur les endpoints GETFermé05 décembre 2019

Actions

Révisions associées

Révision f141556e (diff)
Ajouté par Nicolas Roche il y a plus de 4 ans

utils: move simplify helper in conversion (#37849)

Révision f5100baf (diff)
Ajouté par Nicolas Roche il y a plus de 4 ans

jsondatastore: add text filter on list endpoint (#37849)

Historique

#1

Mis à jour par Nicolas Roche il y a plus de 4 ans

#2

Mis à jour par Nicolas Roche il y a plus de 4 ans

cf https://doc-publik.entrouvert.com/admin-fonctionnel/parametrage-avance/json-data-store/#Ajout-dinformations

Dans le paramétrage du connecteur, il est possible de paramétrer le modèle à appliquer pour la valeur de la clé "text", dans cet exemple on aura ainsi mis {{nom}} ({{numero}}).

C'est là dessus que le filtre opère.

Patch piquant le code de Thomas depuis #21481. (merci)

#3

Mis à jour par Benjamin Dauvergne il y a plus de 4 ans

En profiter pour documenter les paramètres du endpoint maintenant qu'il y en a un de plus ?

Je note ici qu'on a maintenant un long_description pour décrire par exemple le fonctionnement de kwargs.

#4

Mis à jour par Benjamin Dauvergne il y a plus de 4 ans

  • Statut changé de Solution proposée à En cours
  • Assigné à changé de Nicolas Roche à Benjamin Dauvergne
#5

Mis à jour par Nicolas Roche il y a plus de 4 ans

Pour long_description ça ne s'applique que sur les endpoints POST.
Sinon Benj, tu prends le ticket ou c'est une fausse manip ?

#6

Mis à jour par Benjamin Dauvergne il y a plus de 4 ans

  • Assigné à changé de Benjamin Dauvergne à Nicolas Roche

Aucune fausse manip, de temps en temps Redmine change le assigné à sans mon intervention.

#7

Mis à jour par Benjamin Dauvergne il y a plus de 4 ans

Pour long_description effectivement j'ai oublié de penser aux GET, tu t'en sorts avec juste l'ouverture d'un ticket "endpoint; permettre un long_description sur les endpoints GET". Ça n'empêche pas de documenter les paramètres par contre.

#8

Mis à jour par Nicolas Roche il y a plus de 4 ans

documenter les paramètres

pour le kwargs (qui contient les nom des attributs et leur valeur recherchée) je sèche :

/jsondatastore/xxx/data/?attribute=value

#9

Mis à jour par Nicolas Roche il y a plus de 4 ans

  • Lié à Development #38215: endpoint; permettre un long_description sur les endpoints GET ajouté
#10

Mis à jour par Frédéric Péters il y a plus de 4 ans

+def simplify(s):

Je commencerais pas factoriser ça, sous passerelle/utils/, pour en finir avec la duplication actuelle,

passerelle/apps/base_adresse/models.py:                unaccented_q = unicodedata.normalize('NFKD', q).encode('ascii', 'ignore').lower()
passerelle/apps/base_adresse/models.py:        self.unaccent_name = unicodedata.normalize('NFKD', self.name).encode('ascii', 'ignore')
passerelle/apps/csvdatasource/models.py:    return unicodedata.normalize('NFKD', value).encode('ascii', 'ignore')
passerelle/apps/gdc/views.py:            normalized_voie = unicodedata.normalize('NFKD', voie_str).encode('ascii', 'ignore').decode('ascii')
passerelle/apps/solis/models.py:    s = unicodedata.normalize('NFKD', s).encode('ascii', 'ignore')
passerelle/apps/sp_fr/models.py:    s = unicodedata.normalize('NFKD', s).encode('ascii', 'ignore')
passerelle/contrib/agoraplus/normalize.py:    s = unicodedata.normalize('NFKD', s).encode('ascii', 'ignore')
passerelle/contrib/agoraplus/views.py:    return unicodedata.normalize('NFKD', s).encode('ascii', 'ignore').lower()
#11

Mis à jour par Nicolas Roche il y a plus de 4 ans

Voici un patch qui :
  • ajoute simplify() à passerelle/utils/_init__.py_
  • ajoute un message dans le champ long_description (via #38215) à propos de l'utilisation de paramètres supplémentaires pour filtrer sur les arguments du jsondatastore
#12

Mis à jour par Benjamin Dauvergne il y a plus de 4 ans

Nicolas Roche a écrit :

Voici un patch qui :
  • ajoute simplify() à passerelle/utils/_init__.py_
  • ajoute un message dans le champ long_description (via #38215) à propos de l'utilisation de paramètres supplémentaires pour filtrer sur les arguments du jsondatastore

Pas dans passerelle/utils/__init__.py, dans conversion plutôt, faut essayer de faire déglonfler ce init.py et ça peut aller dans son propre commit. (et tu peux ouvrir un ticket "factoriser simplify()")

L'indentation de parameters est un peu fantasque, une ligne par key-value.

#13

Mis à jour par Nicolas Roche il y a plus de 4 ans

dans conversion plutôt,

yep, il fait déjà l'import sur unicodedata

L'indentation de parameters est un peu fantasque

fait

et tu peux ouvrir un ticket "factoriser simplify()

#38237

#14

Mis à jour par Benjamin Dauvergne il y a plus de 4 ans

  • Statut changé de Solution proposée à Solution validée
#15

Mis à jour par Nicolas Roche il y a plus de 4 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit f5100baf1ef4f6a00359ef2710b3131436f270b9
Author: Nicolas ROCHE <nroche@entrouvert.com>
Date:   Thu Dec 5 17:20:45 2019 +0100

    jsondatastore: add text filter on list endpoint (#37849)

commit f141556e5cbc6ab37494b43c286d24c9c7ae94de
Author: Nicolas ROCHE <nroche@entrouvert.com>
Date:   Thu Dec 5 17:18:11 2019 +0100

    utils: move simplify helper in conversion (#37849)
#16

Mis à jour par Frédéric Péters il y a plus de 4 ans

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

Formats disponibles : Atom PDF