Development #56611
pouvoir assigner un objet lié (form_links_whatever) lors d'un set_value() sur un ItemField
0%
Description
Aujourd'hui le form_links_whatever retourne un
{'form': <wcs.variables.LazyFormData object at 0x7fee88d65be0>, 'attachments': <wcs.workflows.AttachmentsSubstitutionProxy object at 0x7fee8883f128>, 'category_name': 'Publik Famille - Famille', 'category_id': 'usagers', 'category_slug': 'usagers', 'category_description': None}
via
class LazyFormDataLinks: def __getattr__(self, varname): for part in self._formdata.iter_evolution_parts(): if not isinstance(part, LinkedFormdataEvolutionPart): continue if part.varname == varname and part.formdata: return part.formdata.get_substitution_variables() # <-----
il y a peut-être à transformer ça en vrai objet, mais surtout ensuite ça devrait pouvoir être utilisé lors d'un set_value() sur un ItemField, pour pouvoir juste mettre {{form_links_whatever}} dans genre une action de création de fiche.
Fichiers
Révisions associées
Historique
Mis à jour par Lauréline Guérin il y a plus de 2 ans
- Fichier 0004-wf-LazyFormDataLinksItems-object-for-links-substitut.patch 0004-wf-LazyFormDataLinksItems-object-for-links-substitut.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
basé sur #56612
Mis à jour par Lauréline Guérin il y a plus de 2 ans
tests/backoffice_pages/test_all.py::test_backoffice_create_formdata_backoffice_submission (entre autres) ne planterait plus si on remplaçait:
redirect.url = '{{ form_links_resubmitted.form_backoffice_url }}'
par:
redirect.url = '{{ form_links_resubmitted_form_backoffice_url }}'
dans la fixture create_formdata
mais est-ce ok ?
Mis à jour par Frédéric Péters il y a plus de 2 ans
mais est-ce ok ?
Ça serait pas terrible de casser ça, à creuser voir ce qui manquerait pour que CompatibilityNamesDict assure la compat.
Mis à jour par Lauréline Guérin il y a plus de 2 ans
- Statut changé de Solution proposée à En cours
Mis à jour par Lauréline Guérin il y a plus de 2 ans
- Fichier 0004-wf-LazyFormDataLinksItems-object-for-links-substitut.patch 0004-wf-LazyFormDataLinksItems-object-for-links-substitut.patch ajouté
- Statut changé de En cours à Solution proposée
Mis à jour par Frédéric Péters il y a plus de 2 ans
+ def inspect_keys(self): + return ['form']
j'adapterais ça selon le contenu, s'il y len(self._linked_formdatas) > 1, retourner les index, comme on a dans LazyFieldVarBlock :
def inspect_keys(self): if self._field.max_items > 1: data = self._formdata.data.get(self._field.id)['data'] return [str(x) for x in range(len(data))] else: ...
Mis à jour par Lauréline Guérin il y a plus de 2 ans
c'est fait dans #56556 qui gère effectivement les index
Mis à jour par Frédéric Péters il y a plus de 2 ans
- Statut changé de Solution proposée à Solution validée
Trop de patches :)
Mis à jour par Lauréline Guérin il y a plus de 2 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 122020a41365f72e249cec9af8f3f19536f1c110 Author: Lauréline Guérin <zebuline@entrouvert.com> Date: Thu Sep 9 11:00:33 2021 +0200 wf: LazyFormDataLinksItems object for links substitution (#56611)
Mis à jour par Frédéric Péters il y a plus de 2 ans
- Statut changé de Résolu (à déployer) à Solution déployée
wf: LazyFormDataLinksItems object for links substitution (#56611)