Projet

Général

Profil

Development #5348

Import JSON de formdef

Ajouté par Frédéric Péters il y a plus de 9 ans. Mis à jour il y a plus de 9 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
29 août 2014
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

Description

Pour le moment formdefs et workflows ont la possibilité de s'exporter en JSON, mais pas le code d'import correspondant.

Dans l'objectif de #4739, en me disant que je préférais quand même le JSON à l'XML, il faudrait pouvoir gérer l'import aussi.


Fichiers


Demandes liées

Bloque w.c.s. - Development #4739: Stockage des formdefs/workflows en xmlNouveau25 avril 2014

Actions

Historique

#1

Mis à jour par Frédéric Péters il y a plus de 9 ans

Voilà, en réutilisant la série de tests de l'import/export XML.

#2

Mis à jour par Thomas Noël il y a plus de 9 ans

Ack.

Dans le test, pour en ajouter une couche : les assert_xml et assert_json vérifient tout les deux l'égalité en comparant les deux export_xml : peut-être qu'on pourrait ajouter un test avec des export_json aussi ? (mais je suis sans doute un peu trop fatigué pour dire des choses rusées...)

Genre ça:

(...)

def accept_compare_formdef(f1, f2, include_id=False):
        assert ET.tostring(indent(f1.export_to_xml(include_id=include_id))
                ) == ET.tostring(indent(formdef2.export_to_xml(include_id=include_id)))
        assert f1.export_to_json(include_id=include_id) == f2.export_to_json(include_id=include_id)

def assert_xml_import_export_works(formdef, include_id=False):
    formdef2 = FormDef.import_from_xml_tree(
            formdef.export_to_xml(include_id=include_id), include_id=include_id)
    accept_compare_formdef(formdef, formdef2, include_id)
    return formdef2

def assert_json_import_export_works(formdef, include_id=False):
    formdef2 = FormDef.import_from_json(
            StringIO.StringIO(formdef.export_to_json(include_id=include_id)), include_id=include_id)
    accept_compare_formdef(formdef, formdef2, include_id)
    return formdef2

(...)
#3

Mis à jour par Frédéric Péters il y a plus de 9 ans

Oui; ça m'a permis de découvrir que la comparaison de l'XML n'était pas parfaite, se faisant seulement sur l'élément <fields>, pas la racine <formdef>.

#4

Mis à jour par Thomas Noël il y a plus de 9 ans

Et donc, "ack" pour ce patch.

#5

Mis à jour par Frédéric Péters il y a plus de 9 ans

  • Statut changé de En cours à Résolu (à déployer)
commit afad1c2c598c46ea53b8231351b5c403cd5f3574
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Fri Aug 29 14:12:27 2014 +0200

    add possibility to create a formdef object from a json value (#5348)
#6

Mis à jour par Thomas Noël il y a plus de 9 ans

  • Statut changé de Résolu (à déployer) à Solution déployée
#7

Mis à jour par Thomas Noël il y a plus de 9 ans

  • Statut changé de Solution déployée à Fermé

Formats disponibles : Atom PDF