Projet

Général

Profil

0001-forms-always-set-prefill-attributes-10760.patch

Frédéric Péters, 28 avril 2016 15:35

Télécharger (2,74 ko)

Voir les différences:

Subject: [PATCH] forms: always set prefill attributes (#10760)

 tests/test_form_pages.py | 12 +++++++++---
 wcs/forms/root.py        |  6 ++++++
 2 files changed, 15 insertions(+), 3 deletions(-)
tests/test_form_pages.py
2039 2039
    formdef = create_formdef()
2040 2040
    formdef.fields = [
2041 2041
        fields.MapField(id='0', label='map'),
2042
        fields.StringField(id='1', label='street', required=False,
2042
        fields.StringField(id='1', label='street', required=True,
2043 2043
            prefill={'type': 'geolocation', 'value': 'road'}),
2044 2044
    ]
2045 2045
    formdef.store()
......
2048 2048
    assert 'qommon.map.js' in resp.body
2049 2049
    assert 'qommon.geolocation.js' in resp.body
2050 2050
    # with a real user interaction this would get set by javascript
2051
    resp.forms[0]['f0$latlng'] = '1.234;-1.234'
2051
    resp.forms[0]['f0$latlng'].value = '1.234;-1.234'
2052 2052
    assert 'data-geolocation="road"' in resp.body
2053 2053

  
2054
    # check required field
2055
    resp = resp.forms[0].submit('submit')
2056
    assert not 'Check values then click submit.' in resp.body
2057
    assert 'data-geolocation="road"' in resp.body
2058
    resp.forms[0]['f1'].value = 'bla'
2059

  
2054 2060
    # check summary page
2055 2061
    resp = resp.forms[0].submit('submit')
2056 2062
    assert 'Check values then click submit.' in resp.body
......
2074 2080
    assert formdef.data_class().count() == 1
2075 2081
    data_id = formdef.data_class().select()[0].id
2076 2082
    data = formdef.data_class().get(data_id)
2077
    assert data.data == {'1': None, '0': '1.234;-1.234'}
2083
    assert data.data == {'1': 'bla', '0': '1.234;-1.234'}
2078 2084

  
2079 2085
def test_form_map_multi_page(pub):
2080 2086
    formdef = create_formdef()
wcs/forms/root.py
420 420
            if not one:
421 421
                req.form = {}
422 422

  
423
        for field in displayed_fields:
424
            if field.prefill:
425
                # always set additional attributes as they will be used for
426
                # "live prefill", regardless of existing data.
427
                form.get_widget('f%s' % field.id).prefill_attributes = field.get_prefill_attributes()
428

  
423 429
        self.html_top(self.formdef.name)
424 430
        r += self.form_side(0, page_no, log_detail=log_detail, data=data)
425 431
        r += get_session().display_message()
426
-