Projet

Général

Profil

0001-api-export-list-of-formdef-keywords-in-user-forms-an.patch

Frédéric Péters, 11 novembre 2015 19:33

Télécharger (3,28 ko)

Voir les différences:

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

 tests/test_api.py | 6 ++++++
 wcs/api.py        | 2 ++
 2 files changed, 8 insertions(+)
tests/test_api.py
497 497
    formdef.fields = [
498 498
        fields.StringField(id='0', label='foobar', varname='foobar'),
499 499
        fields.StringField(id='1', label='foobar2'),]
500
    formdef.keywords = 'hello, world'
500 501
    formdef.store()
501 502
    formdef.data_class().wipe()
502 503

  
......
515 516
    resp3 = get_app(pub).get(sign_uri('/api/users/%s/forms' % local_user.id))
516 517
    assert len(resp.json) == 1
517 518
    assert resp.json[0]['form_status'] == 'New'
519
    assert resp.json[0]['keywords'] == ['hello', 'world']
518 520
    assert resp.json == resp2.json == resp3.json
519 521

  
520 522
    resp = get_app(pub).get(sign_uri('/api/user/forms?full=on', user=local_user))
521 523
    assert resp.json[0]['fields']['foobar'] == 'foo@localhost'
524
    assert resp.json[0]['keywords'] == ['hello', 'world']
522 525

  
523 526
def test_user_drafts(pub, local_user):
524 527
    FormDef.wipe()
......
528 531
        fields.StringField(id='0', label='foobar', varname='foobar'),
529 532
        fields.StringField(id='1', label='foobar2'),
530 533
        fields.FileField(id='2', label='foobar3', varname='file'),]
534
    formdef.keywords = 'hello, world'
531 535
    formdef.store()
532 536

  
533 537
    resp = get_app(pub).get(sign_uri('/api/user/drafts', user=local_user))
......
548 552
    assert len(resp.json) == 1
549 553
    assert resp.json == resp2.json
550 554
    assert not 'fields' in resp.json[0]
555
    assert resp.json[0]['keywords'] == ['hello', 'world']
551 556

  
552 557
    resp = get_app(pub).get(sign_uri('/api/user/drafts?full=on', user=local_user))
553 558
    assert 'fields' in resp.json[0]
554 559
    assert resp.json[0]['fields']['foobar'] == 'foo@localhost'
555 560
    assert 'file' not in resp.json[0]['fields'] # no file export in full lists
561
    assert resp.json[0]['keywords'] == ['hello', 'world']
556 562

  
557 563
def test_api_list_formdata(pub, local_user):
558 564
    Role.wipe()
wcs/api.py
434 434
                'name': form.formdef.name,
435 435
                'url': url,
436 436
                'datetime': misc.strftime.strftime('%Y-%m-%d %H:%M:%S', form.receipt_time),
437
                'keywords': form.formdef.keywords_list,
437 438
            }
438 439
            if get_request().form.get('full') == 'on':
439 440
                d.update(form.get_json_export_dict(include_files=False))
......
470 471
                'url': url,
471 472
                'datetime': misc.strftime.strftime('%Y-%m-%d %H:%M:%S', form.receipt_time),
472 473
                'status': status,
474
                'keywords': form.formdef.keywords_list,
473 475
            }
474 476
            d.update(form.get_substitution_variables(minimal=True))
475 477
            if get_request().form.get('full') == 'on':
476
-