Development #32134
permettre à get_display_value/get_structured_value de chercher une option selon text, pas id.
0%
Description
Ça me semble ce qui pourrait expliquer #32113.
Fichiers
Révisions associées
Historique
Mis à jour par Frédéric Péters il y a environ 5 ans
- Fichier 0001-workflows-let-backoffice-item-field-be-assigned-from.patch 0001-workflows-let-backoffice-item-field-be-assigned-from.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
(en prenant tests/test_workflows.py::test_set_backoffice_field_item comme référence)
Avant, quand on mettait un identifiant inconnu :
(Pdb) print formdata.data {'bo1': 'aa', 'bo1_display': 'aa'}
Maintenant :
(Pdb) print formdata.data {'bo1': 'aa'}
Le comportement passé pourrait être rétabli via :
--- a/wcs/fields.py +++ b/wcs/fields.py @@ -1271,7 +1271,7 @@ class ItemField(WidgetField): return get_session().jsonp_display_values.get( '%s_%s' % (data_source.get_jsonp_url(), value)) - return data_source.get_display_value(value) + return data_source.get_display_value(value) or value def add_to_view_form(self, form, value = None): real_value = value
Mais plutôt, pour suivre l'intention du ticket, chercher la valeur selon le texte, ce qui donnera :
(Pdb) print formdata.data {'bo1': 'a', 'bo1_display': 'aa', 'bo1_structured': {'text': 'aa', 'id': 'a', 'more': 'aaa'}}
et si jamais la valeur n'est pas non plus un libellé, alors, uniquement {'bo1': 'whatever'}. (alors qu'avant il y aurait également eu bo1_display).
Le patch n'est pas terrible parce que pour rétablir une valeur appropriée à "bo1" il y a dans l'action du workflow une connaissance explicite de cet aspect du champ Liste et uniquement celui-ci.
Mis à jour par Thomas Noël il y a environ 5 ans
- Statut changé de Solution proposée à Solution validée
Ça me semble bizarre comme idée, mais pourquoi pas, cette touche de magie "aidera".
Le "Avant" dans "Avant, quand on mettait un identifiant inconnu" : c'est #31492 ?
(J'ai presque envie de te demander d'ajouter un commentaire sur get_display_value(self, option_id) qui précise que option_id peut être un label, en fallback ; mais bon, c'est sous-entendu quelque lignes en dessous alors go)
Mis à jour par Frédéric Péters il y a environ 5 ans
Ça me semble bizarre comme idée, mais pourquoi pas, cette touche de magie "aidera".
Moi ça me va de ne rien faire et pester contre les gens qui font n'importe quoi avec w.c.s. pour ne pas avoir à développer dans d'autres applications (#32113#note-10).
Le "Avant" dans "Avant, quand on mettait un identifiant inconnu" : c'est #31492 ?
Yes (en pratique j'ai testé le tag v3.68 pour voir ce qui se passait avant).
Mis à jour par Frédéric Péters il y a environ 5 ans
- Statut changé de Solution validée à Résolu (à déployer)
Poussé ainsi.
commit 189ede3c5881926175a52dc45726db5709468d75 Author: Frédéric Péters <fpeters@entrouvert.com> Date: Wed Apr 10 09:30:27 2019 +0200 workflows: let backoffice item field be assigned from data label (#32134)
Mis à jour par Frédéric Péters il y a environ 5 ans
- Statut changé de Résolu (à déployer) à Solution déployée
workflows: let backoffice item field be assigned from data label (#32134)