diff --git a/wcs/forms/root.ptl b/wcs/forms/root.ptl index 3a844345c..cd4d8f8d3 100644 --- a/wcs/forms/root.ptl +++ b/wcs/forms/root.ptl @@ -393,21 +393,17 @@ class FormPage(Directory): form.submit_widgets.remove(form._names['prefill']) del form._names['prefill'] - if not editing: - if page_no == 0 and not get_request().form.has_key('magictoken'): - magictoken = randbytes(8) - else: - magictoken = get_request().form['magictoken'] - form.add_hidden('magictoken', magictoken) - - form.add_submit('submit', _('Next')) - data = session.get_by_magictoken(magictoken, {}) + if page_no == 0 and not get_request().form.has_key('magictoken'): + magictoken = randbytes(8) else: - if page_no == self.page_number - 1: - form.add_submit('submit', _('Save Changes')) - else: - form.add_submit('submit', _('Next')) - data = editing.data + magictoken = get_request().form['magictoken'] + form.add_hidden('magictoken', magictoken) + data = session.get_by_magictoken(magictoken, {}) + + if editing and page_no == self.page_number - 1: + form.add_submit('submit', _('Save Changes')) + else: + form.add_submit('submit', _('Next')) if page_no > 0: form.add_submit('previous', _('Previous')) @@ -511,6 +507,9 @@ class FormPage(Directory): if editing: existing_formdata = editing.data if not get_request().form: + # on the initial visit editing the form (i.e. not after + # clicking for previous or next page), we need to load the + # existing data into the session token = randbytes(8) get_request().form['magictoken'] = token session.add_magictoken(token, editing.data)