export workflow status as a list not a dict (#10807)

This commit is contained in:
Benjamin Dauvergne 2016-05-03 12:13:53 +02:00
parent 7d3515a2f7
commit f930d8d720
3 changed files with 22 additions and 15 deletions

View File

@ -186,20 +186,23 @@ Le schéma de données d'un formulaire est accessible à l'adresse
"name": "Workflow Newsletter",
"id": "1",
"last_modification_time": "2015-12-12T10:20:45",
"statuses": {
"1": {
"statuses": [
{
"id": "1",
"name": "Nouveau",
"forced_endpoint": false
},
"2": {
{
"id": "2",
"name": "En cours",
"forced_endpoint": false
},
"3": {
{
"id": "3",
"name": "Terminé",
"forced_endpoint": false
}
}
]
}
}
</code>

View File

@ -80,13 +80,16 @@ def test_get_json_export_dict(pub):
assert set(root.keys()) >= set(['statuses', 'name', 'functions'])
assert root['name'] == 'wf'
assert set(root['statuses'].keys()) == set(['st1', 'st2'])
assert all(set(status.keys()) >= set(['name', 'forced_endpoint']) for status in
root['statuses'].values())
assert root['statuses']['st1']['name'] == 'Status1'
assert root['statuses']['st1']['forced_endpoint'] is False
assert root['statuses']['st2']['name'] == 'Status2'
assert root['statuses']['st2']['forced_endpoint'] is True
assert len(root['statuses']) == 2
assert set(st['id'] for st in root['statuses']) == set(['st1', 'st2'])
assert all(set(status.keys()) >= set(['id', 'name', 'forced_endpoint']) for status in
root['statuses'])
assert root['statuses'][0]['id'] == 'st1'
assert root['statuses'][0]['name'] == 'Status1'
assert root['statuses'][0]['forced_endpoint'] is False
assert root['statuses'][1]['id'] == 'st2'
assert root['statuses'][1]['name'] == 'Status2'
assert root['statuses'][1]['forced_endpoint'] is True
def test_jump_nothing(pub):
FormDef.wipe()

View File

@ -572,12 +572,13 @@ class Workflow(StorableObject):
roles = root['functions'] = {}
for role, label in self.roles.iteritems():
roles[role] = unicode(label, charset)
statuses = root['statuses'] = {}
statuses = root['statuses'] = []
for status in self.possible_status:
statuses[status.id] = {
statuses.append({
'id': status.id,
'name': unicode(status.name, charset),
'forced_endpoint': status.forced_endpoint,
}
})
return root
@classmethod