forms: don't add empty <span> in checkboxes widget (#25988)

This commit is contained in:
Frédéric Péters 2018-08-31 10:47:48 +02:00
parent b76eee459b
commit bb0a832068
1 changed files with 8 additions and 5 deletions

View File

@ -223,15 +223,18 @@ class RadiobuttonsWidget(quixote.form.RadiobuttonsWidget):
r += htmltext(self.delim)
return r.getvalue()
def checkbox_render_content(self):
def checkbox_render_content(self, empty_span=True):
attrs = {'id': 'form_' + self.name}
if self.required:
attrs['aria-required'] = 'true'
if self.attrs:
attrs.update(self.attrs)
return htmltag("input", xml_end=True, type="checkbox", name=self.name,
value="yes", checked=self.value and "checked" or None,
**attrs) + htmltext('<span></span>') # for custom style
checkbox = htmltag("input", xml_end=True, type="checkbox", name=self.name,
value="yes", checked=self.value and "checked" or None,
**attrs)
if empty_span:
return checkbox + htmltext('<span></span>') # for custom style
return checkbox
CheckboxWidget.render_content = checkbox_render_content
@ -1117,7 +1120,7 @@ class CheckboxesWidget(CompositeWidget):
if widget.value:
r += htmltext('<input type="hidden" name="%s" value="yes" >') % widget.name
widget.name = widget.name + 'xx'
r += widget.render_content()
r += widget.render_content(empty_span=False)
r += htmltext('<span>%s</span>') % widget.title
r += htmltext('</label>')
r += htmltext('</li>')