misc: do not include first title of page if it's page title (#13529)
This commit is contained in:
parent
2db78e53b2
commit
c98d00af5d
|
@ -843,6 +843,26 @@ def test_form_multi_page_post_conditions(pub):
|
|||
resp = resp.forms[0].submit('submit')
|
||||
assert 'Check values then click submit.' in resp.body
|
||||
|
||||
def test_form_multi_page_page_name_as_title(pub):
|
||||
formdef = create_formdef()
|
||||
formdef.fields = [fields.PageField(id='0', label='1st page', type='page'),
|
||||
fields.TitleField(id='4', label='1st page', type='title'),
|
||||
fields.StringField(id='1', label='string'),
|
||||
fields.PageField(id='2', label='2nd page', type='page'),
|
||||
fields.StringField(id='3', label='string 2')]
|
||||
formdef.store()
|
||||
page = get_app(pub).get('/test/')
|
||||
formdef.data_class().wipe()
|
||||
page.forms[0]['f1'] = 'foo'
|
||||
next_page = page.forms[0].submit('submit')
|
||||
assert_current_page(next_page, '2nd page')
|
||||
assert next_page.forms[0]['previous']
|
||||
next_page.forms[0]['f3'] = 'bar'
|
||||
next_page = next_page.forms[0].submit('submit')
|
||||
assert_current_page(next_page, 'Validating')
|
||||
assert 'Check values then click submit.' in next_page.body
|
||||
assert next_page.body.count('1st page') == 2 # in steps and in main body
|
||||
|
||||
def test_form_submit_with_user(pub, emails):
|
||||
create_user(pub)
|
||||
formdef = create_formdef()
|
||||
|
|
|
@ -540,7 +540,7 @@ class FormDef(StorableObject):
|
|||
form.attrs['data-keywords'] = ' '.join(self.keywords_list)
|
||||
on_disabled_page = False
|
||||
on_page = False
|
||||
for field in self.fields:
|
||||
for i, field in enumerate(self.fields):
|
||||
if field.type == 'page':
|
||||
on_disabled_page = False
|
||||
if not field.is_visible(dict, self):
|
||||
|
@ -563,7 +563,14 @@ class FormDef(StorableObject):
|
|||
form.widgets.append(HtmlWidget(htmltext('</div></div>')))
|
||||
form.widgets.append(HtmlWidget(
|
||||
htmltext('<div class="page"><h3>%s</h3><div>' % field.label)))
|
||||
on_page = True
|
||||
on_page = field
|
||||
|
||||
if field.type == 'title' and on_page and (
|
||||
self.fields[i-1] is on_page and
|
||||
on_page.label == field.label):
|
||||
# don't include first title of a page if that title has the
|
||||
# same text as the page.
|
||||
continue
|
||||
|
||||
value = dict.get(field.id, '')
|
||||
field.add_to_view_form(form, value)
|
||||
|
|
Loading…
Reference in New Issue