Projet

Général

Profil

0001-fields-fix-display-of-item-field-where-no-elements-a.patch

Frédéric Péters, 27 octobre 2015 11:44

Télécharger (2,57 ko)

Voir les différences:

Subject: [PATCH] fields: fix display of item field where no elements are
 defined (#8785)

 tests/test_fields.py | 10 ++++++++--
 wcs/fields.py        |  5 ++++-
 wcs/qommon/form.py   |  2 +-
 3 files changed, 13 insertions(+), 4 deletions(-)
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
-