From cff339741d6d02acd695f1e52207ecbe7cf1e970 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Mon, 2 Nov 2015 13:56:17 +0100 Subject: [PATCH] forms: do not display message for fields prefilled with a fixed string (#8838) --- tests/test_form_pages.py | 26 ++++++++++++++++++++++++++ wcs/forms/root.py | 8 ++++++-- 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/tests/test_form_pages.py b/tests/test_form_pages.py index 0356e60..01b6a95 100644 --- a/tests/test_form_pages.py +++ b/tests/test_form_pages.py @@ -1008,6 +1008,32 @@ def test_form_items_data_source_field_submit(pub): {'id': '1', 'more': 'foo', 'text': 'un'}, {'id': '3', 'more': 'baz', 'text': 'trois'}]} +def test_form_page_string_prefill(pub): + user = create_user(pub) + formdef = create_formdef() + formdef.data_class().wipe() + formdef.fields = [fields.StringField(id='0', label='string', + prefill={'type': 'string', 'value': 'HELLO WORLD'})] + formdef.store() + + resp = get_app(pub).get('/test/') + assert resp.forms[0]['f0'].value == 'HELLO WORLD' + assert 'widget-prefilled' in resp.body + assert not 'Value has been automatically prefilled.' in resp.body + +def test_form_page_formula_prefill(pub): + user = create_user(pub) + formdef = create_formdef() + formdef.data_class().wipe() + formdef.fields = [fields.StringField(id='0', label='string', + prefill={'type': 'formula', 'value': repr('HELLO WORLD')})] + formdef.store() + + resp = get_app(pub).get('/test/') + assert resp.forms[0]['f0'].value == 'HELLO WORLD' + assert 'widget-prefilled' in resp.body + assert 'Value has been automatically prefilled.' in resp.body + def test_form_page_query_string_prefill(pub): user = create_user(pub) formdef = create_formdef() diff --git a/wcs/forms/root.py b/wcs/forms/root.py index 0092e32..dc1b4c0 100644 --- a/wcs/forms/root.py +++ b/wcs/forms/root.py @@ -399,8 +399,12 @@ class FormPage(Directory): v = None if v: prefilled = True - form.get_widget('f%s' % k).set_message( - _('Value has been automatically prefilled.')) + if field.prefill and field.prefill.get('type') != 'string': + # unless we prefilled with a fixed string, we + # inform the user the field value has been + # prefilled. + form.get_widget('f%s' % k).set_message( + _('Value has been automatically prefilled.')) form.get_widget('f%s' % k).prefilled = True if field.prefill: -- 2.6.2