Development #9849
Publik - Project management #8652: Réaliser l'intégration du BI dans Publik
Export JSON des workflows (pour les statistiques)
0%
Description
Un développement minimum pour obtenir les noms des statuts au niveau de l'API schéma des formulaires; il sera ainsi facile de créer une table des statuts pour un export BI.
Fichiers
Révisions associées
export workflow in formdef json exports (fixes #9849)
Revert "export workflow in formdef json exports (fixes #9849)"
This reverts commit c78e8a671bb78b5d662b0a4a2c67b3664d96a556 inadvertently.
Revert "add to_dict() and export_to_json() to Workflow (#9849)"
This reverts commit 2b1f868f674f07700a59ee70640be231b2d144b2 pushed
inadvertently.
api: include more workflow details in formdef schema (#9849)
Historique
Mis à jour par Benjamin Dauvergne il y a environ 8 ans
- Fichier 0001-add-to_dict-and-export_to_json-to-Workflow-9849.patch 0001-add-to_dict-and-export_to_json-to-Workflow-9849.patch ajouté
- Fichier 0002-export-workflow-in-formdef-json-exports-fixes-9849.patch 0002-export-workflow-in-formdef-json-exports-fixes-9849.patch ajouté
- Assigné à mis à Benjamin Dauvergne
- Patch proposed changé de Non à Oui
Mis à jour par Benjamin Dauvergne il y a environ 8 ans
C'est nécessaire pour pouvoir externaliser les statistiques.
Mis à jour par Benjamin Dauvergne il y a environ 8 ans
- Sujet changé de Export JSON des workflows à Export JSON des workflows (pour les statistiques)
- Description mis à jour (diff)
Mis à jour par Frédéric Péters il y a environ 8 ans
Bien qu'en interne l'attribut s'appelle "roles", je préférerais que l'export se fasse sous un autre nom (correspondant au mot "fonction" qu'on utilise dans l'interface).
Actuellement on a un attribut "workflow" qui va contenir le nom, et là on ajoute un workflow_schema qui contiendra lui-aussi le nom, on pourrait garder uniquement "workflow" et que ça prenne le contenu que tu mets dans workflow_schema ? (ça demande mise à jour de import_from_json pour prendre en compte les deux situations).
Je n'ajouterais pas de méthode export_to_json, je garderais celle-là pour assurer une sémantique similaire à celle dans formdefs.py, c'est-à-dire un export qui est le pendant d'un import, sans perte. (pendant des export_to_xml et import_from_xml, aussi).
Dans test_formdefs_api je ne ferais pas de test large sur l'ensemble des attributs présents aujourd'hui.
Il faudrait étendre la documentation pour présenter le contenu de workflow_schema (ou plutôt, pour suivre ce que j'écrivais, le nouveau contenu de workflow). (dans help/fr/api-schema.page)
Mis à jour par Benjamin Dauvergne il y a environ 8 ans
- Patch proposed changé de Oui à Non
Frédéric Péters a écrit :
Bien qu'en interne l'attribut s'appelle "roles", je préférerais que l'export se fasse sous un autre nom (correspondant au mot "fonction" qu'on utilise dans l'interface).
Hmm dans les synonymes anglais de function/role je trouve: berth (informal), billet (informal), capacity, duty, employment, function, job, occupation, office, place, post, role, situation. Je pense que je vais prendre function sauf contrordre ou alors "virtual_roles" mais c'est moche.
Actuellement on a un attribut "workflow" qui va contenir le nom, et là on ajoute un workflow_schema qui contiendra lui-aussi le nom, on pourrait garder uniquement "workflow" et que ça prenne le contenu que tu mets dans workflow_schema ? (ça demande mise à jour de import_from_json pour prendre en compte les deux situations).
Oui j'avais vu mais ne sachant pas à quel point la rétro-compatibilité était importante sur ce point j'ai fais ce choix. Je vais modifier import_from_json pour trouver l'id soit dans ['workflow']['id'] soit dans ['workflow_id'] qui peut disparaître aussi.
Je n'ajouterais pas de méthode export_to_json, je garderais celle-là pour assurer une sémantique similaire à celle dans formdefs.py, c'est-à-dire un export qui est le pendant d'un import, sans perte. (pendant des export_to_xml et import_from_xml, aussi).
D'ac.
Dans test_formdefs_api je ne ferais pas de test large sur l'ensemble des attributs présents aujourd'hui.
Ok je vais faire des tests permettant l'extension (set() <= set() plutôt que set() == set()).
Il faudrait étendre la documentation pour présenter le contenu de workflow_schema (ou plutôt, pour suivre ce que j'écrivais, le nouveau contenu de workflow). (dans help/fr/api-schema.page)
Ok.
Mis à jour par Benjamin Dauvergne il y a environ 8 ans
- Statut changé de Nouveau à Résolu (à déployer)
- % réalisé changé de 0 à 100
Appliqué par commit c78e8a671bb78b5d662b0a4a2c67b3664d96a556.
Mis à jour par Frédéric Péters il y a environ 8 ans
- Statut changé de Résolu (à déployer) à En cours
- % réalisé changé de 100 à 50
Ça a été poussé par mégarde, sans la prise en compte des commentaires.
Mis à jour par Benjamin Dauvergne il y a environ 8 ans
- Statut changé de En cours à Résolu (à déployer)
- % réalisé changé de 50 à 100
Appliqué par commit cde8218cc0169011067e3b5226fe49c90aa3a47f.
Mis à jour par Benjamin Dauvergne il y a environ 8 ans
Mis à jour par Frédéric Péters il y a environ 8 ans
- Statut changé de Résolu (à déployer) à En cours
- % réalisé changé de 100 à 0
Mis à jour par Frédéric Péters il y a presque 8 ans
Pour suivre ce qui se fait dans formdata.py et roles.py, plutôt appeler la méthode "get_json_export_dict" (et non to_dict).
Dans l'exemple, on ne peut pas à la fois avoir un nom personnalisé et _default comme id :
"name": "Workflow Newsletter", "id": "_default",
Il faudrait des tests d'import de formdef json, sur l'ancienne et la nouvelle forme.
Sur l'API, il y a déjà un test_formdef_schema, il faudrait juste y ajouter la partie workflow.
Mis à jour par Benjamin Dauvergne il y a presque 8 ans
- Fichier 0001-fix-non-determinism-when-importing-wscall-workflow-a.patch 0001-fix-non-determinism-when-importing-wscall-workflow-a.patch ajouté
- Fichier 0002-export-workflow-in-formdef-json-exports-fixes-9849.patch 0002-export-workflow-in-formdef-json-exports-fixes-9849.patch ajouté
- méthode renommée
- id changé dans l'exemple
- test d'import avec un export à l'ancienne sauce
- test d'API déplacé dans test_formdef_schema
Mis à jour par Frédéric Péters il y a presque 8 ans
- Fichier 0001-api-include-more-workflow-details-in-formdef-schema-.patch ajouté
- Statut changé de En cours à Résolu (à déployer)
Il doit y eu un peu trop de merge de patchs, 0001-fix-non-determinism-when-importing-wscall-workflow-a.patch vient de #10477, et dans le test sur l'export dict/json, le "st1 = workflow.add_status('Status1', 'st1')" a été perdu en route.
J'ai réuni ce qui relève de ce ticket dans un unique patch et je l'ai poussé.
commit b9b914b948a7812ba04b3667b239a3b623984ced Author: Benjamin Dauvergne <bdauvergne@entrouvert.com> Date: Tue Feb 2 19:16:43 2016 +0100 api: include more workflow details in formdef schema (#9849)
Mis à jour par Frédéric Péters il y a presque 8 ans
- Fichier
0001-api-include-more-workflow-details-in-formdef-schema-.patchsupprimé
Mis à jour par Frédéric Péters il y a presque 8 ans
- Statut changé de Résolu (à déployer) à Fermé
add to_dict() and export_to_json() to Workflow (#9849)