From db878333a467df6900aebee67ef562d52a50a378 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Sun, 13 Nov 2016 11:15:27 +0100 Subject: [PATCH] formdefs: add keywords to
tag (#13941) --- tests/test_form_pages.py | 16 ++++++++++++++++ wcs/formdef.py | 20 ++++++++++---------- 2 files changed, 26 insertions(+), 10 deletions(-) diff --git a/tests/test_form_pages.py b/tests/test_form_pages.py index 58f49fb..09c60be 100644 --- a/tests/test_form_pages.py +++ b/tests/test_form_pages.py @@ -3511,3 +3511,19 @@ def test_items_field_with_disabled_items(pub): resp = resp.form.submit('submit') # -> submit assert formdef.data_class().select()[0].data['0'] == ['2'] assert formdef.data_class().select()[0].data['0_display'] == 'world' + +def test_form_data_keywords(pub): + formdef = create_formdef() + formdef.keywords = 'hello,world' + formdef.store() + formdef.data_class().wipe() + resp = get_app(pub).get('/test/') + assert 'data-keywords="hello world"' in resp.body + resp = resp.form.submit('submit') + assert 'Check values then click submit.' in resp.body + assert 'data-keywords="hello world"' in resp.body + resp = resp.form.submit('submit') + assert resp.status_int == 302 + resp = resp.follow() + assert 'The form has been recorded' in resp.body + assert formdef.data_class().count() == 1 diff --git a/wcs/formdef.py b/wcs/formdef.py index 0ea9a32..c2b210a 100644 --- a/wcs/formdef.py +++ b/wcs/formdef.py @@ -426,8 +426,10 @@ class FormDef(StorableObject): def get_display_id_format(self): return '[formdef_id]-[form_number_raw]' - def create_form(self, page_no = 0, displayed_fields = None): - form = Form(enctype = "multipart/form-data", use_tokens = False) + def create_form(self, page_no=0, displayed_fields=None): + form = Form(enctype = "multipart/form-data", use_tokens=False) + if self.keywords: + form.attrs['data-keywords'] = ' '.join(self.keywords_list) form.ERROR_NOTICE = _('There were errors processing the form and ' 'you cannot go to the next page. Do ' 'check below that you filled all fields correctly.') @@ -456,14 +458,12 @@ class FormDef(StorableObject): def get_page(self, page_no): return [x for x in self.fields if x.type == 'page'][page_no] - - def create_view_form(self, dict = {}, use_tokens = True, visible = True): - if visible: - form = Form(enctype = 'multipart/form-data', use_tokens = use_tokens) - else: - form = Form(enctype = 'multipart/form-data', - use_tokens = use_tokens, - style = 'display: none;') + def create_view_form(self, dict={}, use_tokens=True, visible=True): + form = Form(enctype='multipart/form-data', use_tokens=use_tokens) + if not visible: + form.attrs['style'] = 'display: none;' + if self.keywords: + form.attrs['data-keywords'] = ' '.join(self.keywords_list) on_disabled_page = False on_page = False for field in self.fields: -- 2.10.2