Development #12629
champ de traitement fichier : permettre d'y envoyer des données arbitraire (dictionnaire)
0%
Description
- un fichier (form_var_xxx_raw, attachments) : c'est déjà le cas
- un dictionnaire, sous la même forme de l'export API json :
{ "content": ... (qui est encodé en base64) "content_type": ... "filename": ... }
Fichiers
Révisions associées
Historique
Mis à jour par Thomas Noël il y a plus de 7 ans
Dans l'idée de faire fonctionner ce patch:
diff --git a/tests/test_workflows.py b/tests/test_workflows.py index 81998a1..d5cd097 100644 --- a/tests/test_workflows.py +++ b/tests/test_workflows.py @@ -1733,3 +1733,9 @@ def test_set_backoffice_field_file(pub): formdata = formdef.data_class().get(formdata.id) assert formdata.data['bo1'].base_filename == 'xxx.xml' + + item.fields = [{'field_id': 'bo1', + 'value': '={"content": "dGVzdA==", "content_type": "text/plain", "filename": "test.txt"}'}] + item.perform(formdata) + formdata = formdef.data_class().get(formdata.id) + assert formdata.data['bo1'].base_filename == 'test.txt'
Mis à jour par Frédéric Péters il y a plus de 7 ans
- Fichier 0001-workflows-allow-setting-files-to-assembled-dictionar.patch 0001-workflows-allow-setting-files-to-assembled-dictionar.patch ajouté
- Statut changé de Nouveau à En cours
- Patch proposed changé de Non à Oui
Je relirai aussi, et ça corrige #12628.
Mis à jour par Frédéric Péters il y a plus de 7 ans
- Fichier 0002-workflows-allow-setting-backoffice-file-field-from-a.patch 0002-workflows-allow-setting-backoffice-file-field-from-a.patch ajouté
J'ai divisé le patch (l'autre partie dans #12628); dans celui-ci aussi j'ai déplacé l'appel à get_file_value pour n'attraper que l'exception ValueError, pas tout ce qui peut arriver dans un self.compute.
Mis à jour par Thomas Noël il y a plus de 7 ans
Ack (modulo un "import base64" qui devrait être fait ici plutôt que dans #12628, je pinaille)
Mis à jour par Frédéric Péters il y a plus de 7 ans
- Statut changé de En cours à Résolu (à déployer)
commit d4575fa0bedbf8ed10840d20fee044df2eae57af Author: Frédéric Péters <fpeters@entrouvert.com> Date: Mon Jul 18 19:03:19 2016 +0200 workflows: allow setting backoffice file field from a dict (#12629)
Mis à jour par Victor Claudet il y a plus de 7 ans
est-ce que c'est déployé en recette ? Si oui, est-ce qu'il y a des choses particulières à expliquer pour l'utilisation au delà la mise en place d'un champ de traitement et des actions de workflow (trigger+mise à jour des données de traitement) ?
Mis à jour par Frédéric Péters il y a plus de 7 ans
Dans la colonne de droite de redmine il y a désormais l'information précise sur les plateformes où c'est déployé. En l'espèce, non, ce n'est pas déployé sur le SaaS de recette.
Sur l'utilisation, pour les champs de traitement "fichier", en plus de pouvoir assigner directement un fichier (d'un champ du formulaire ou d'un attachement au workflow), il y a possibilité de constituer un fichier à partir de données éparses, en utilisant un dictionnaire :
={'filename': 'hello.txt', 'content': blah_response_foo_bar}
ou, si le contenu du fichier a été encodé en base64
={'filename': 'hello.txt', 'b64_content': blah_response_foo_bar}
Mis à jour par Victor Claudet il y a plus de 7 ans
ok merci pour la description. Est-ce qu'il est possible d'avoir une estimation pour le passage en recette ?
Mis à jour par Frédéric Péters il y a plus de 7 ans
Demain, ou lundi, histoire de la recette durant la semaine pour mise en production fin juillet.
Mis à jour par Victor Claudet il y a plus de 7 ans
C'est données, elles vont être récupérée par un trigger et rangée dans un champ de traitement.
Pour remplir le champ il faudra appeler quoi dans le trigger ?
Si je reprends t'as description au dessus, Champ_de_traitement = trigger_b64_content ? ou c'est eux qui choisissent le nom au moment de l'envoi dans le webservice ?
Mis à jour par Frédéric Péters il y a plus de 7 ans
Il y a une action qui s'appelle "Modifier les données de traitement" qui est à ajouter et à configurer pour mettre dans le champ fichier (qui aura été ajouté comme donnée de traitement) ce que je pointais plus haut, ={'filename': 'hello.txt', 'b64_content': blah_response_foo_bar}
.
Pour être sûr de la variable à utiliser le mieux c'est de les laisser appeler le trigger et puis de regarder dans le /inspect.
Mis à jour par Frédéric Péters il y a plus de 7 ans
- Statut changé de Résolu (à déployer) à Fermé
workflows: allow setting backoffice file field from a dict (#12629)