Skip to content

Commit

Permalink
Merge pull request #192 from plone/autoform-widget-factory
Browse files Browse the repository at this point in the history
Fix `SelectFieldWidget` factory call from `plone.autoform`
  • Loading branch information
petschki authored Mar 14, 2024
2 parents 8db2761 + e6f1e92 commit 7a80bc4
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 8 deletions.
2 changes: 2 additions & 0 deletions news/192.bugfix
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Fix `SelectFieldWidget` factory call.
[petschki]
14 changes: 8 additions & 6 deletions plone/app/z3cform/tests/test_widgets.py
Original file line number Diff line number Diff line change
Expand Up @@ -571,17 +571,19 @@ def setUp(self):
self.request = self.layer["request"]

def test_select_widget(self):
from plone.app.z3cform.widgets.select import SelectFieldWidget
from plone.app.z3cform.widgets.select import SelectWidget

widget = SelectWidget(self.request)
widget.id = "test-widget"
widget.name = "selectfield-widget"
widget.field = Choice(
field = Choice(
__name__="selectfield",
values=["one", "two", "three"],
required=True,
)
widget.terms = widget.field.vocabulary
widget.field.required = True
widget = SelectFieldWidget(field, self.request)
widget.id = "test-widget"
widget.name = "selectfield-widget"
widget.terms = field.vocabulary
self.assertTrue(isinstance(widget, SelectWidget))
self.assertEqual(
{
"pattern_options": {},
Expand Down
6 changes: 4 additions & 2 deletions plone/app/z3cform/widgets/select.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,14 +34,16 @@ class SelectWidget(HTMLSelectWidget, SelectWidgetBase):


@implementer(IFieldWidget)
def SelectFieldWidget(field, source, request):
def SelectFieldWidget(field, request, extra=None):
if extra is not None:
request = extra
return FieldWidget(field, SelectWidget(request))


@implementer(IFieldWidget)
def CollectionChoiceSelectFieldWidget(field, value_type, request):
"""IFieldWidget factory for SelectWidget."""
return SelectFieldWidget(field, None, request)
return SelectFieldWidget(field, request)


@implementer_only(ISelect2Widget)
Expand Down

0 comments on commit 7a80bc4

Please sign in to comment.