Skip to content

Commit 13f1c09

Browse files
committed
Fix collective#396. Custom action scripts gets server side flagged fields in the fields dict parameter under the name_of_the_field key.
1 parent 8e77b05 commit 13f1c09

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

src/collective/easyform/actions.py

+8-2
Original file line numberDiff line numberDiff line change
@@ -550,14 +550,20 @@ def getScript(self, context):
550550
script.ZPythonScript_edit(params, body)
551551
return script
552552

553-
def sanifyFields(self, form):
553+
def sanifyFields(self, form, fields):
554554
# Makes request.form fields accessible in a script
555555
#
556556
# Avoid Unauthorized exceptions since request.form is inaccesible
557557

558558
result = {}
559559
for field in form:
560560
result[field] = form[field]
561+
562+
# append in the results all serverside fields variable
563+
for field in fields:
564+
key = 'form.widgets.{}'.format(field)
565+
if key not in result:
566+
result[field] = fields[field]
561567
return result
562568

563569
def checkWarningsAndErrors(self, script):
@@ -604,7 +610,7 @@ def executeCustomScript(self, result, form, req):
604610
def onSuccess(self, fields, request):
605611
# Executes the custom script
606612
form = get_context(self)
607-
resultData = self.sanifyFields(request.form)
613+
resultData = self.sanifyFields(request.form, fields)
608614
return self.executeCustomScript(resultData, form, request)
609615

610616

0 commit comments

Comments
 (0)