Development #39291
Toulouse Axel - ajouter des labels à certains champs des endpoints d'info
0%
Description
cf #39257
concerne pour le moment les endpoints family_info et child_info
Fichiers
Révisions associées
Historique
Mis à jour par Lauréline Guérin il y a environ 4 ans
- Fichier 0001-toulouse_axel-add-labels-to-explain-some-values-3929.patch 0001-toulouse_axel-add-labels-to-explain-some-values-3929.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
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".
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 ?
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.
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 ? :)
Mis à jour par Lauréline Guérin il y a environ 4 ans
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.
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
- 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 :
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
Mis à jour par Lauréline Guérin il y a environ 4 ans
Mis à jour par Lauréline Guérin il y a environ 4 ans
- Fichier 0001-toulouse_axel-add-labels-to-explain-some-values-3929.patch 0001-toulouse_axel-add-labels-to-explain-some-values-3929.patch ajouté
même patch, après rebase
Mis à jour par Benjamin Dauvergne il y a environ 4 ans
- Statut changé de Solution proposée à Solution validée
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)
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
toulouse_axel: add labels to explain some values (#39291)