feed current formdata for substitution variables, even if incomplete
This commit is contained in:
parent
edbd5b3a38
commit
73eb9d70ac
|
@ -365,10 +365,15 @@ class FormPage(Directory):
|
|||
_('You need to enable javascript to complete this form')
|
||||
'</noscript>'
|
||||
displayed_fields = []
|
||||
form = self.formdef.create_form(page_no, displayed_fields)
|
||||
|
||||
session = get_session()
|
||||
|
||||
if page_no > 0:
|
||||
magictoken = get_request().form['magictoken']
|
||||
self.feed_current_data(magictoken)
|
||||
|
||||
form = self.formdef.create_form(page_no, displayed_fields)
|
||||
|
||||
if True or [x for x in displayed_fields if x.prefill and
|
||||
x.prefill.get('type') == 'wsf'] and (
|
||||
session.lasso_session_dump and
|
||||
|
@ -436,14 +441,6 @@ class FormPage(Directory):
|
|||
v = user.form_data.get(x)
|
||||
break
|
||||
elif t == 'formula':
|
||||
# create a fake FormData to feed variables
|
||||
formdata = FormData()
|
||||
formdata._formdef = self.formdef
|
||||
formdata.user = get_request().user
|
||||
formdata.data = data
|
||||
formdata.status = str('')
|
||||
get_publisher().substitutions.feed(formdata)
|
||||
formula = field.prefill.get('value')
|
||||
variables = get_publisher().substitutions.get_context_variables()
|
||||
try:
|
||||
v = str(eval(formula, variables))
|
||||
|
@ -482,6 +479,15 @@ class FormPage(Directory):
|
|||
|
||||
form.render()
|
||||
|
||||
def feed_current_data(self, magictoken):
|
||||
# create a fake FormData to feed variables
|
||||
formdata = FormData()
|
||||
formdata._formdef = self.formdef
|
||||
formdata.user = get_request().user
|
||||
formdata.data = get_session().get_by_magictoken(magictoken, {})
|
||||
formdata.status = str('')
|
||||
get_publisher().substitutions.feed(formdata)
|
||||
|
||||
def _q_index(self, log_detail = None, editing = None):
|
||||
self.check_role()
|
||||
if self.formdef.is_disabled():
|
||||
|
@ -571,6 +577,9 @@ class FormPage(Directory):
|
|||
magictoken = form.get_widget('magictoken').parse()
|
||||
except KeyError:
|
||||
magictoken = randbytes(8)
|
||||
|
||||
self.feed_current_data(magictoken)
|
||||
|
||||
form = self.formdef.create_form(page_no)
|
||||
form.add_submit('previous')
|
||||
if self.formdef.allow_drafts:
|
||||
|
@ -662,6 +671,7 @@ class FormPage(Directory):
|
|||
if step == 2:
|
||||
form.add_submit('previous')
|
||||
magictoken = form.get_widget('magictoken').parse()
|
||||
self.feed_current_data(magictoken)
|
||||
form_data = session.get_by_magictoken(magictoken, {})
|
||||
signature = None
|
||||
|
||||
|
|
Loading…
Reference in New Issue