Projet

Général

Profil

Development #9849

Publik - Project management #8652: Réaliser l'intégration du BI dans Publik

Export JSON des workflows (pour les statistiques)

Ajouté par Benjamin Dauvergne il y a environ 8 ans. Mis à jour il y a presque 8 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
Début:
02 février 2016
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

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

Révision 2b1f868f (diff)
Ajouté par Benjamin Dauvergne il y a environ 8 ans

add to_dict() and export_to_json() to Workflow (#9849)

Révision c78e8a67 (diff)
Ajouté par Benjamin Dauvergne il y a environ 8 ans

export workflow in formdef json exports (fixes #9849)

Révision cde8218c (diff)
Ajouté par Benjamin Dauvergne il y a environ 8 ans

Revert "export workflow in formdef json exports (fixes #9849)"

This reverts commit c78e8a671bb78b5d662b0a4a2c67b3664d96a556 inadvertently.

Révision 96e00065 (diff)
Ajouté par Benjamin Dauvergne il y a environ 8 ans

Revert "add to_dict() and export_to_json() to Workflow (#9849)"

This reverts commit 2b1f868f674f07700a59ee70640be231b2d144b2 pushed
inadvertently.

Révision b9b914b9 (diff)
Ajouté par Benjamin Dauvergne il y a presque 8 ans

api: include more workflow details in formdef schema (#9849)

Historique

#2

Mis à jour par Benjamin Dauvergne il y a environ 8 ans

C'est nécessaire pour pouvoir externaliser les statistiques.

#3

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)
#4

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)

#5

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.

#6

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
#7

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.

#8

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
#10

Mis à jour par Benjamin Dauvergne il y a environ 8 ans

  • Patch proposed changé de Non à Oui
#11

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
#12

Mis à jour par Benjamin Dauvergne il y a presque 8 ans

  • Tâche parente mis à #8652
#13

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.

#14

Mis à jour par Benjamin Dauvergne il y a presque 8 ans

  • 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
#15

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)
#16

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 supprimé
#17

Mis à jour par Frédéric Péters il y a presque 8 ans

  • Version cible mis à v1.42
#18

Mis à jour par Frédéric Péters il y a presque 8 ans

  • Statut changé de Résolu (à déployer) à Fermé

Formats disponibles : Atom PDF