From a82bea604def17ce8ce2dd906054a4826938dfdb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Wed, 11 Nov 2015 19:28:17 +0100 Subject: [PATCH] api: export list of formdef keywords in user/forms and user/drafts (#8951) --- tests/test_api.py | 4 ++++ wcs/api.py | 2 ++ 2 files changed, 6 insertions(+) diff --git a/tests/test_api.py b/tests/test_api.py index 76b0800..2d2bb36 100644 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -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() @@ -519,6 +520,7 @@ def test_user_forms(pub, local_user): 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 +530,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)) @@ -553,6 +556,7 @@ def test_user_drafts(pub, 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() diff --git a/wcs/api.py b/wcs/api.py index 1b02e6c..197ad70 100644 --- a/wcs/api.py +++ b/wcs/api.py @@ -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': -- 2.6.2