292 |
292 |
'current_page_no': current_position,
|
293 |
293 |
})
|
294 |
294 |
|
295 |
|
def page(self, page, page_change=True, page_error_messages=None):
|
|
295 |
def page(self, page, page_change=True, page_error_messages=None, submit_button=None):
|
296 |
296 |
displayed_fields = []
|
297 |
297 |
|
298 |
298 |
session = get_session()
|
... | ... | |
302 |
302 |
self.feed_current_data(magictoken)
|
303 |
303 |
|
304 |
304 |
form = self.create_form(page, displayed_fields)
|
|
305 |
if submit_button is True:
|
|
306 |
# submit_button at True means a non-submitting button has been
|
|
307 |
# clicked; details in [ADD_ROW_BUTTON].
|
|
308 |
form.clear_errors()
|
305 |
309 |
if page_error_messages:
|
306 |
310 |
form.add_global_errors(page_error_messages)
|
307 |
311 |
if getattr(session, 'ajax_form_token', None):
|
... | ... | |
738 |
742 |
return self.validating(data)
|
739 |
743 |
else:
|
740 |
744 |
page_no = 0
|
741 |
|
return self.page(self.pages[page_no], True)
|
|
745 |
return self.page(self.pages[page_no], page_change=True)
|
742 |
746 |
self.feed_current_data(None)
|
743 |
747 |
if not self.pages:
|
744 |
748 |
raise errors.TraversalError()
|
... | ... | |
857 |
861 |
# form.get_submit() returns the name of the clicked button, and
|
858 |
862 |
# it will return True if the form has been submitted, but not
|
859 |
863 |
# by clicking on a submit widget; for example if an "add row"
|
860 |
|
# button is clicked.
|
|
864 |
# button is clicked. [ADD_ROW_BUTTON]
|
861 |
865 |
if form.has_errors() or form.get_submit() is True:
|
862 |
866 |
return self.page(page, page_change=False,
|
863 |
|
page_error_messages=page_error_messages)
|
|
867 |
page_error_messages=page_error_messages,
|
|
868 |
submit_button=form.get_submit())
|
864 |
869 |
|
865 |
870 |
form_data = session.get_by_magictoken(magictoken, {})
|
866 |
871 |
with get_publisher().substitutions.temporary_feed(
|
867 |
|
-
|