blocks: adapt new row detection to block prefill changes (#46111)
This commit is contained in:
parent
3be0032b4f
commit
d40a163a25
|
@ -349,4 +349,6 @@ class BlockWidget(WidgetList):
|
|||
|
||||
def had_add_clicked(self):
|
||||
add_widget = self.get_widget('add_element')
|
||||
return get_request().form.get(add_widget.name) if add_widget else False
|
||||
request = get_request()
|
||||
request_form = getattr(request, 'orig_form', request.form)
|
||||
return request_form.get(add_widget.name) if add_widget else False
|
||||
|
|
|
@ -519,7 +519,7 @@ class FormPage(Directory, FormTemplateMixin):
|
|||
had_prefill = False
|
||||
if page_change or submit_button is True:
|
||||
# on page change (or when a "add row" button is clicked), we
|
||||
# fake a GET request so the form is not altered# with errors
|
||||
# fake a GET request so the form is not altered with errors
|
||||
# from the previous submit; if the page was already
|
||||
# visited, we restore values; otherwise we set req.form as empty.
|
||||
req = get_request()
|
||||
|
@ -529,6 +529,11 @@ class FormPage(Directory, FormTemplateMixin):
|
|||
data, form, displayed_fields, add_button_clicked=bool(submit_button is True)
|
||||
)
|
||||
|
||||
if submit_button is True:
|
||||
# keep submitted data so it's possible to known the add button
|
||||
# was clicked later on.
|
||||
req.orig_form = req.form
|
||||
|
||||
if had_prefill:
|
||||
# include prefilled data
|
||||
transient_formdata = self.get_transient_formdata()
|
||||
|
|
Loading…
Reference in New Issue