Projet

Général

Profil

Bug #35811

Valeur du texte incorrecte sur un champ liste relié à une data source si la data source comporte un 'id_parameter'

Ajouté par Emmanuel Cazenave il y a plus de 4 ans. Mis à jour il y a plus de 4 ans.

Statut:
Rejeté
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
04 septembre 2019
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:
Non

Description

De #35786, un champ liste (identifiant act_ecrite) branché sur une 'data source' wcs, la data source tape sur un connecteur csv.

Un fois le formulaire soumis, inspection des variables, on a form_var_act_ecrite_raw qui a bien l'identifiant de l'enregistrement sélectionné, mais par contre form_var_act_ecrite qui prend systématiquement le texte de la première ligne du csv, 'Rouen ville aux trésors' en l’occurrence.

La source de donnés https://formulaires.demarches.rouen.fr/backoffice/settings/data-sources/3/, dans son export xml il y a un '<id_parameter>actions_ecrites_culture</id_parameter>' (je ne sais pas ce que c'est que ce truc par rapport au slug, comment c'est arrivé là).

Je reproduis en local et je tombe dans wcs/data_sources.py :

def get_structured_value(self, option_id):
    value = None
    if self.type == 'json' and self.id_parameter:
        resp = self.load_json(self.id_parameter, option_id)
        response = qommon.misc.json_loads(resp)
        if response['data']:
            value = response['data'][0]   <- c'est ça qui sort le label de la première ligne du csv

ipdb> pp response
{'data': [{'id': '1', 'text': 'Rouen ville aux tr\xc3\xa9sors'},
          {'id': '2',
           'text': 'L\xe2\x80\x99exp\xc3\xa9dition de la Dauphine'},
          {'id': '3',
           'text': 'Matin\xc3\xa9e chant\xc3\xa9e des tout-petits'},
          {'id': '4', 'text': 'Concerts allong\xc3\xa9s'},
          {'id': '5',
           'text': 'Le basson : grand \xe2\x80\x93p\xc3\xa8re dites-vous ?'},
          {'id': '6', 'text': 'Imagine \xc3\xa0 sons'},
          {'id': '7', 'text': 'Les instruments dans les musiques actuelles'},
          {'id': '8', 'text': 'Autour du spectacle'},
          {'id': '9', 'text': 'Com\xc3\xa9diens en herbe !'},
          {'id': '10', 'text': 'La couleur des \xc3\xa9motions'},
          {'id': '11', 'text': '\xc3\x89meus-toi'},
          {'id': '12', 'text': 'Parcours de sensibilisation autour du genre'},
          {'id': '13', 'text': 'Mots en sc\xc3\xa8ne !'},
          {'id': '14',
           'text': 'Une journ\xc3\xa9e de rencontre au conservatoire'},
          {'id': '15', 'text': 'Kissihou'},
          {'id': '16', 'text': 'Teinture, couleurs et nuancier'},
          {'id': '17', 'text': 'Art contemporain'},
          {'id': '18', 'text': 'Le ha\xc3\xafku version num\xc3\xa9rique'},
          {'id': '19', 'text': 'Webdoc \xe2\x80\x93 street-art'},
          {'id': '20', 'text': 'Buffet'}],
 'err': 0}

En contournement il y a :

- taper directement l'URL du JSON dans le champ liste
- créer un nouvelle source de données (qui se retrouve sans id_parameter même si on lui assigne un identifiant, celui ci se retrouvant dans le slug)

Historique

#2

Mis à jour par Emmanuel Cazenave il y a plus de 4 ans

créer un nouvelle source de données (qui se retrouve sans id_parameter même si on lui assigne un identifiant, celui ci se retrouvant dans le slug)

Je me suis embrouillé là dessus, ne rien faire, me laisser affiner le diagnostique.

#3

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

  • Statut changé de Nouveau à Rejeté

Le "paramètre d'identifiant" c'est le paramètre qu'on peut passer dans la query string pour faire une requête retournant uniquement l'élément correspondant, typiquement "id". Le "paramètre de requête" c'est le paramètre qu'on peut passer dans la query string pour faire une requête retournant une série de résultats filtrés selon le paramètre, typiquement "q".

Le paramétrage de la source de données dit là que pour obtenir l'info d'un élément il suffit de faire https://passerelle.demarches.rouen.fr/csvdatasource/fichier-tableur-actions-educatives-culture-act/data?actions_ecrites_culture=&lt;id&gt;.

Cette requête pourtant retournera l'ensemble des éléments. (peut-être que ce connecteur devrait faire une erreur 400 en présence de paramètres inconnus ?).

Donc, erreur de configuration.

Formats disponibles : Atom PDF