forms: fix edition of current formdata (#2789)

This commit is contained in:
Frédéric Péters 2013-04-23 01:38:02 +02:00 committed by Thomas NOEL
parent cf3ae32eae
commit 2d44e3e1c5
1 changed files with 13 additions and 14 deletions

View File

@ -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)