Fix select2 widgets rendering empty values in display mode when called from an easyform action #6
+13
−1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Related to Mountaineers issue #3991.
I think the root cause for this issue relies on plone.app.z3cform.
When the form is submitted selected values for select2 widgets are stored in the request form as strings, but the
Select2Widget
extract
method is not doing any kind of validation on the request input to ensure this is converted to a list like z3c.form is doing on theSequenceWidget
.Thus when the
DisplayValue
method is called it expects to iterate on a list, but it will instead iterate on a string and raiseLookupError
s which are ignored.This "hacky" solution is the best thing i could find without the need to edit directly z3c.form or plone.app.z3cform code.