api: export list of formdef keywords in user/forms and user/drafts (#8951)

This commit is contained in:
Frédéric Péters 2015-11-11 19:28:17 +01:00
parent 8ed71906f9
commit 4f80ae3bfc
2 changed files with 8 additions and 0 deletions

View File

@ -497,6 +497,7 @@ def test_user_forms(pub, local_user):
formdef.fields = [
fields.StringField(id='0', label='foobar', varname='foobar'),
fields.StringField(id='1', label='foobar2'),]
formdef.keywords = 'hello, world'
formdef.store()
formdef.data_class().wipe()
@ -515,10 +516,12 @@ def test_user_forms(pub, local_user):
resp3 = get_app(pub).get(sign_uri('/api/users/%s/forms' % local_user.id))
assert len(resp.json) == 1
assert resp.json[0]['form_status'] == 'New'
assert resp.json[0]['keywords'] == ['hello', 'world']
assert resp.json == resp2.json == resp3.json
resp = get_app(pub).get(sign_uri('/api/user/forms?full=on', user=local_user))
assert resp.json[0]['fields']['foobar'] == 'foo@localhost'
assert resp.json[0]['keywords'] == ['hello', 'world']
def test_user_drafts(pub, local_user):
FormDef.wipe()
@ -528,6 +531,7 @@ def test_user_drafts(pub, local_user):
fields.StringField(id='0', label='foobar', varname='foobar'),
fields.StringField(id='1', label='foobar2'),
fields.FileField(id='2', label='foobar3', varname='file'),]
formdef.keywords = 'hello, world'
formdef.store()
resp = get_app(pub).get(sign_uri('/api/user/drafts', user=local_user))
@ -548,11 +552,13 @@ def test_user_drafts(pub, local_user):
assert len(resp.json) == 1
assert resp.json == resp2.json
assert not 'fields' in resp.json[0]
assert resp.json[0]['keywords'] == ['hello', 'world']
resp = get_app(pub).get(sign_uri('/api/user/drafts?full=on', user=local_user))
assert 'fields' in resp.json[0]
assert resp.json[0]['fields']['foobar'] == 'foo@localhost'
assert 'file' not in resp.json[0]['fields'] # no file export in full lists
assert resp.json[0]['keywords'] == ['hello', 'world']
def test_api_list_formdata(pub, local_user):
Role.wipe()

View File

@ -434,6 +434,7 @@ class ApiUserDirectory(Directory):
'name': form.formdef.name,
'url': url,
'datetime': misc.strftime.strftime('%Y-%m-%d %H:%M:%S', form.receipt_time),
'keywords': form.formdef.keywords_list,
}
if get_request().form.get('full') == 'on':
d.update(form.get_json_export_dict(include_files=False))
@ -470,6 +471,7 @@ class ApiUserDirectory(Directory):
'url': url,
'datetime': misc.strftime.strftime('%Y-%m-%d %H:%M:%S', form.receipt_time),
'status': status,
'keywords': form.formdef.keywords_list,
}
d.update(form.get_substitution_variables(minimal=True))
if get_request().form.get('full') == 'on':