Projet

Général

Profil

Development #39291

Toulouse Axel - ajouter des labels à certains champs des endpoints d'info

Ajouté par Lauréline Guérin il y a environ 4 ans. Mis à jour il y a environ 4 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
27 janvier 2020
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

cf #39257

concerne pour le moment les endpoints family_info et child_info


Fichiers

Révisions associées

Révision a174bc24 (diff)
Ajouté par Lauréline Guérin il y a environ 4 ans

toulouse_axel: add labels to explain some values (#39291)

Historique

#2

Mis à jour par Lauréline Guérin il y a environ 4 ans

#3

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

Les référentiels contenus dans passerelle/contrib/toulouse_axel/utils.py il faudrait selon moi avoir un endpoint qui les expose, genre /referential/csp/ exposerait la liste (liste de dicos id/text). Ca sera certainement utile dans les formulaires.

Et donc je pense qu'il faudrait plutôt avoir un dico de mappings, genre :

MAPPINGS = {
     'csp': OrderedDict({ ... }),
     'lien_parente': OrderedDict({ ... }),
     ...
}

Note: je propose des OrderedDict dans le but que /referentials/<truc> renvoie les listes "dans l'ordre".

#4

Mis à jour par Lauréline Guérin il y a environ 4 ans

on expose les référentiels seulement, ou les référentiels + les labels dans les endpoints d'info ?

#5

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

Lauréline Guerin a écrit :

on expose les référentiels seulement, ou les référentiels + les labels dans les endpoints d'info ?

Mon idée c'est que ces mappings, en plus d'être utilisés comme tu le fais bien dans le patch ici, soient des endpoints qui seront des "sources de données" dans w.c.s. pour avoir par exemple la liste des CSP. Et donc, un endpoint "referential/csp/" (disons un endpoint "referential" avec pattern=csp) renverra :

{
  "err": 0,
  "data": [
    {"id": "OUV", "text": "OUVRIER"},
    {"id": "EMP", "text": "EMPLOYES"},
    ...
  ]
}

(Au passage en profiter pour corriger les labels, ie écrire "Ouvrier" et "Employé" (au singulier), etc... parce que tout ça va être affiché)

NB : on pourra faire cet endpoint "referential" dans un patch à suivre, mais je notais ici que le format que tu prévois dans passerelle/contrib/toulouse_axel/utils.py ne sera pas très pratique, ça serait plus facile d'avoir un dico de ordereddict. Enfin je crois.

#6

Mis à jour par Lauréline Guérin il y a environ 4 ans

Tu es sûr pour le singulier ? Les CSP c'est pas un genre de norme ? :)

#8

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

Lauréline Guerin a écrit :

Tu es sûr pour le singulier ? Les CSP c'est pas un genre de norme ? :)

Ah oui tiens, effectivement a priori c'est toujours le pluriel : https://fr.wikipedia.org/wiki/Professions_et_cat%C3%A9gories_socioprofessionnelles_en_France

Concernant le code du endpoint "referential",
  • il faut retirer le print
  • typo dans la description "Possibile values"
  • tu pourrais faire un references = getattr(utils, '{}_mapping'.format(code), None) avec un APIError en 404 si le resultat est None et hop
  • je trouverai plus joli d'avoir un @pattern=r'(?P\w+)/$'@ au lieu d'un truc en querystring * mais surtout il ne faut pas envoyer le dictionnaire tel quel, mais bien une liste au sens des referentiels Publik https://doc-publik.entrouvert.com/dev/connecteurs/#referentiels :
      "data": [
          {"id": "...", "text": "..."},
          {"id": "...", "text": "..."},
          ...
        ]
    

Dans utils.py pour éviter les u'truc' tu pourrais utiliser from __future__ import unicode_literals ?

Je serais d'avis de changer "paternel" et "maternel" sur GRP1 et GRP2 mais bon, allez, laissons cette blague, petit vestige d'un passé peu lointain.

Enfin, toujours dans utils.py, au niveau du get_label quand un code n'existe pas, au lieu de renvoyer None on pourrait renvoyer une chaine vide.

#9

Mis à jour par Lauréline Guérin il y a environ 4 ans

  • il faut retirer le print

Un print ? Mais quel print ? :)

  • typo dans la description "Possibile values"

Oups

  • tu pourrais faire un references = getattr(utils, '{}_mapping'.format(code), None) avec un APIError en 404 si le resultat est None et hop

Je veux bien, mais c'est du code mort, même pas testable :)

  • je trouverai plus joli d'avoir un pattern au lieu d'un truc en querystring

ok

Ha oui, j'avais raté ce point, désolée

Dans utils.py pour éviter les u'truc' tu pourrais utiliser from __future__ import unicode_literals ?

ok

Enfin, toujours dans utils.py, au niveau du get_label quand un code n'existe pas, au lieu de renvoyer None on pourrait renvoyer une chaine vide.

Je renvoie le code s'il n'existe pas

#12

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

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

Mis à jour par Lauréline Guérin il y a environ 4 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit a174bc24ebc29456d4ba44f015ecfb49477728fe
Date:   Mon Jan 27 15:39:31 2020 +0100

    toulouse_axel: add labels to explain some values (#39291)
#14

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

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

Formats disponibles : Atom PDF