Commit eec8c929 authored by Georgios Dagkakis's avatar Georgios Dagkakis

Formulator: Do not add empty item if item_list is empty for SingleItemsWidget and MultiItemsWidget

we used to add this value because ```select``` without ```option```
(that happens in MultiListField only) is invalid on XHTML.

But it was not at all required for other cases like MultiCheckboxField or RadioField.

Also,  ```select``` without ```option``` is no longer invalid on HTML5.

Considering that showing dummy unselectable <option> is anyway meaningless for users,
we drop it for all cases.

/reviewed-on !777
parent dfa6d12d
...@@ -839,9 +839,7 @@ class SingleItemsWidget(ItemsWidget): ...@@ -839,9 +839,7 @@ class SingleItemsWidget(ItemsWidget):
cell = getattr(REQUEST, 'cell', None) cell = getattr(REQUEST, 'cell', None)
items = field.get_value('items', REQUEST=REQUEST, cell=cell) items = field.get_value('items', REQUEST=REQUEST, cell=cell)
if not items: if not items:
# single item widget should have at least one child in order to produce return []
# valid XHTML; keep it enabled otherwise field validator always fails
return [self.render_item('', '', '', '', '')]
# check if we want to select first item # check if we want to select first item
if not value and field.get_value('first_item', REQUEST=REQUEST, if not value and field.get_value('first_item', REQUEST=REQUEST,
...@@ -981,12 +979,8 @@ class MultiItemsWidget(ItemsWidget): ...@@ -981,12 +979,8 @@ class MultiItemsWidget(ItemsWidget):
items = field.get_value('items', REQUEST=REQUEST, cell=getattr(REQUEST, 'cell', None)) # Added request items = field.get_value('items', REQUEST=REQUEST, cell=getattr(REQUEST, 'cell', None)) # Added request
from Products.ERP5Form.MultiLinkField import MultiLinkFieldWidget from Products.ERP5Form.MultiLinkField import MultiLinkFieldWidget
if not items and not isinstance(self, MultiLinkFieldWidget): if not items:
# multi items widget should have at least one child in order to produce return []
# valid XHTML; disable it so user can not select it.
# This cannot be applied to MultiLinkFields, which are just some <a>
# links
return [self.render_item('', '', '', '', 'disabled="disabled"')]
css_class = field.get_value('css_class') css_class = field.get_value('css_class')
extra_item = field.get_value('extra_item') extra_item = field.get_value('extra_item')
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment