0001-fields-fix-display-of-item-field-where-no-elements-a.patch
tests/test_fields.py | ||
---|---|---|
175 | 175 |
assert str(form.render()).count('<option') == 4 |
176 | 176 | |
177 | 177 |
# without any item |
178 |
field = fields.ItemField(id='1', label='Foobar', items=[])
|
|
178 |
field = fields.ItemField(id='1', label='Foobar', items=None)
|
|
179 | 179 |
form = Form() |
180 | 180 |
field.add_to_form(form) |
181 | 181 |
assert str(form.render()).count('<option') == 1 |
182 | 182 | |
183 | 183 |
# without any item and not being required |
184 |
field = fields.ItemField(id='1', label='Foobar', items=[], required=False) |
|
184 |
field = fields.ItemField(id='1', label='Foobar', items=None, required=False) |
|
185 |
form = Form() |
|
186 |
field.add_to_form(form) |
|
187 |
assert str(form.render()).count('<option') == 1 |
|
188 | ||
189 |
# without any item but with an hint |
|
190 |
field = fields.ItemField(id='1', label='Foobar', items=None, hint='HELLO WORLD') |
|
185 | 191 |
form = Form() |
186 | 192 |
field.add_to_form(form) |
187 | 193 |
assert str(form.render()).count('<option') == 1 |
wcs/fields.py | ||
---|---|---|
858 | 858 | |
859 | 859 |
def get_options(self): |
860 | 860 |
if not self.data_source: |
861 |
options = self.items[:] |
|
861 |
if self.items: |
|
862 |
options = self.items[:] |
|
863 |
else: |
|
864 |
options = [] |
|
862 | 865 |
else: |
863 | 866 |
options = data_sources.get_items(self.data_source) |
864 | 867 |
if options and not self.required: |
wcs/qommon/form.py | ||
---|---|---|
1366 | 1366 |
if not self.separate_hint() and self.hint: |
1367 | 1367 |
r = htmltag('option', value='', selected=None) |
1368 | 1368 |
tags.append(r + htmlescape(self.hint) + htmltext('</option>')) |
1369 |
if not self.required: |
|
1369 |
if not self.required or self.options[0][0] is None:
|
|
1370 | 1370 |
# hint has been put as first element, skip the default empty |
1371 | 1371 |
# value. |
1372 | 1372 |
options = self.options[1:] |
1373 |
- |