forms: add hidden previous button on first form page (#41889) #163
|
@ -1122,8 +1122,7 @@ def test_form_multi_page_condition_on_first_page(pub):
|
|||
resp = get_app(pub).get('/test/')
|
||||
formdef.data_class().wipe()
|
||||
# should be on second page already
|
||||
with pytest.raises(AssertionError):
|
||||
resp.form.get('previous')
|
||||
assert resp.pyquery(".buttons button.form-previous[hidden][disabled]")
|
||||
resp.form['f3'] = 'foo'
|
||||
assert_current_page(resp, '2nd page')
|
||||
resp = resp.form.submit('submit') # -> 3rd page
|
||||
|
@ -1136,8 +1135,7 @@ def test_form_multi_page_condition_on_first_page(pub):
|
|||
resp = resp.form.submit('previous') # -> 2nd page
|
||||
assert_current_page(resp, '2nd page')
|
||||
assert resp.form['f3']
|
||||
with pytest.raises(AssertionError):
|
||||
resp.form.get('previous')
|
||||
assert resp.pyquery(".buttons button.form-previous[hidden][disabled]")
|
||||
|
||||
|
||||
def test_form_multi_page_condition_on_first_and_next(pub):
|
||||
|
@ -10475,7 +10473,8 @@ def test_form_edit_single_page(pub):
|
|||
resp = resp.form.submit('button_editable').follow()
|
||||
assert [x.text for x in resp.pyquery('#steps .label')] == ['2nd page']
|
||||
resp.form['f4'] = 'changed'
|
||||
assert [x.text for x in resp.pyquery('.buttons button')] == ['Save Changes', 'Cancel']
|
||||
assert [x.text for x in resp.pyquery('.buttons button')] == ['Save Changes', 'Previous', 'Cancel']
|
||||
assert resp.pyquery('.buttons button.form-previous[hidden][disabled]')
|
||||
resp = resp.form.submit('submit')
|
||||
formdata.refresh_from_storage()
|
||||
assert formdata.data == {'2': 'a', '4': 'changed', '6': 'c'}
|
||||
|
@ -10488,14 +10487,20 @@ def test_form_edit_single_page(pub):
|
|||
resp = resp.form.submit('button_editable').follow()
|
||||
assert [x.text for x in resp.pyquery('#steps .label')] == ['2nd page', '3rd page']
|
||||
resp.form['f4'] = 'other change'
|
||||
assert [x.text for x in resp.pyquery('.buttons button')] == ['Next', 'Cancel']
|
||||
assert [x.text for x in resp.pyquery('.buttons button')] == ['Next', 'Previous', 'Cancel']
|
||||
assert resp.pyquery('.buttons button.form-previous[hidden][disabled]')
|
||||
resp = resp.form.submit('submit')
|
||||
assert [x.text for x in resp.pyquery('.buttons button')] == ['Save Changes', 'Previous', 'Cancel']
|
||||
assert resp.pyquery('.buttons button.form-previous:not([hidden])')
|
||||
assert resp.pyquery('.buttons button.form-previous:not([disabled])')
|
||||
resp = resp.form.submit('previous')
|
||||
assert [x.text for x in resp.pyquery('.buttons button')] == ['Next', 'Cancel']
|
||||
assert [x.text for x in resp.pyquery('.buttons button')] == ['Next', 'Previous', 'Cancel']
|
||||
assert resp.pyquery('.buttons button.form-previous[hidden][disabled]')
|
||||
resp = resp.form.submit('submit')
|
||||
resp.form['f6'] = 'last change'
|
||||
assert [x.text for x in resp.pyquery('.buttons button')] == ['Save Changes', 'Previous', 'Cancel']
|
||||
assert resp.pyquery('.buttons button.form-previous:not([hidden])')
|
||||
assert resp.pyquery('.buttons button.form-previous:not([disabled])')
|
||||
resp = resp.form.submit('submit')
|
||||
formdata.refresh_from_storage()
|
||||
assert formdata.data == {'2': 'a', '4': 'other change', '6': 'last change'}
|
||||
|
|
|
@ -637,13 +637,12 @@ class FormPage(FormdefDirectoryBase, FormTemplateMixin):
|
|||
'submit', _('Next'), css_class='form-next', attrs={'aria-label': _('Go to next page')}
|
||||
)
|
||||
|
||||
if self.pages.index(page) > 0:
|
||||
form.add_submit(
|
||||
'previous',
|
||||
_('Previous'),
|
||||
css_class='form-previous',
|
||||
attrs={'aria-label': _('Go back to previous page')},
|
||||
)
|
||||
previous_button_attrs = {'aria-label': _('Go back to previous page')}
|
||||
if self.pages.index(page) == 0:
|
||||
previous_button_attrs['hidden'] = 'true'
|
||||
previous_button_attrs['disabled'] = 'true'
|
||||
|
||||
form.add_submit('previous', _('Previous'), css_class='form-previous', attrs=previous_button_attrs)
|
||||
|
||||
had_prefill = False
|
||||
if page_change or submit_button is True:
|
||||
|
|
Loading…
Reference in New Issue