api: allow for ?full=on on /api/user/drafts (#8450)
This commit is contained in:
parent
68e26d3997
commit
e2b5a50b5a
|
@ -445,14 +445,17 @@ def test_user_drafts(local_user):
|
|||
formdef.name = 'test'
|
||||
formdef.fields = [
|
||||
fields.StringField(id='0', label='foobar', varname='foobar'),
|
||||
fields.StringField(id='1', label='foobar2'),]
|
||||
fields.StringField(id='1', label='foobar2'),
|
||||
fields.FileField(id='2', label='foobar3', varname='file'),]
|
||||
formdef.store()
|
||||
|
||||
resp = get_app(pub).get(sign_uri('/api/user/drafts', user=local_user))
|
||||
assert len(resp.json) == 0
|
||||
|
||||
formdata = formdef.data_class()()
|
||||
formdata.data = {'0': 'foo@localhost', '1': 'xxx'}
|
||||
upload = PicklableUpload('test.txt', 'text/plain', 'ascii')
|
||||
upload.receive(['base64me'])
|
||||
formdata.data = {'0': 'foo@localhost', '1': 'xxx', '2': upload}
|
||||
formdata.user_id = local_user.id
|
||||
formdata.page_no = 1
|
||||
formdata.status = 'draft'
|
||||
|
@ -463,6 +466,12 @@ def test_user_drafts(local_user):
|
|||
resp2 = get_app(pub).get(sign_uri('/myspace/drafts', user=local_user))
|
||||
assert len(resp.json) == 1
|
||||
assert resp.json == resp2.json
|
||||
assert not 'fields' in resp.json[0]
|
||||
|
||||
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
|
||||
|
||||
def test_api_list_formdata(local_user):
|
||||
Role.wipe()
|
||||
|
|
|
@ -398,9 +398,13 @@ class ApiUserDirectory(Directory):
|
|||
'url': url,
|
||||
'datetime': misc.strftime.strftime('%Y-%m-%d %H:%M:%S', form.receipt_time),
|
||||
}
|
||||
if get_request().form.get('full') == 'on':
|
||||
d.update(form.get_json_export_dict(include_files=False))
|
||||
drafts.append(d)
|
||||
|
||||
return json.dumps(drafts)
|
||||
return json.dumps(drafts,
|
||||
cls=misc.JSONEncoder,
|
||||
encoding=get_publisher().site_charset)
|
||||
|
||||
def forms(self):
|
||||
get_response().set_content_type('application/json')
|
||||
|
|
Loading…
Reference in New Issue