[Checkins] SVN: zope.app.form/trunk/src/zope/app/form/browser/ Add
labels to MultiCheckBoxWidget. Not having labels for
checkboxes is just
Marius Gedminas
marius at pov.lt
Mon Jul 2 05:52:32 EDT 2007
Log message for revision 77294:
Add labels to MultiCheckBoxWidget. Not having labels for checkboxes is just
plain rude.
Changed:
U zope.app.form/trunk/src/zope/app/form/browser/itemswidgets.py
U zope.app.form/trunk/src/zope/app/form/browser/source.txt
U zope.app.form/trunk/src/zope/app/form/browser/tests/test_itemswidget.py
-=-
Modified: zope.app.form/trunk/src/zope/app/form/browser/itemswidgets.py
===================================================================
--- zope.app.form/trunk/src/zope/app/form/browser/itemswidgets.py 2007-07-02 09:44:26 UTC (rev 77293)
+++ zope.app.form/trunk/src/zope/app/form/browser/itemswidgets.py 2007-07-02 09:52:32 UTC (rev 77294)
@@ -592,16 +592,18 @@
return "<br />".join(rendered_items)
def renderItem(self, index, text, value, name, cssClass):
- id = '%s.%s' % (name, index)
- elem = renderElement('input',
- type="checkbox",
- cssClass=cssClass,
- name=name,
- id=id,
- value=value)
- return self._joinButtonToMessageTemplate % (elem, text)
+ """Render an item of the list."""
+ return self._renderItem(index, text, value, name, cssClass)
def renderSelectedItem(self, index, text, value, name, cssClass):
+ """Render a selected item of the list."""
+ return self._renderItem(index, text, value, name, cssClass,
+ checked=True)
+
+ def _renderItem(self, index, text, value, name, cssClass, checked=False):
+ kw = {}
+ if checked:
+ kw['checked'] = 'checked'
id = '%s.%s' % (name, index)
elem = renderElement('input',
type="checkbox",
@@ -609,5 +611,9 @@
name=name,
id=id,
value=value,
- checked="checked")
- return self._joinButtonToMessageTemplate %(elem, text)
+ **kw)
+ contents = self._joinButtonToMessageTemplate % (elem, text)
+ return renderElement(u'label',
+ contents=contents,
+ **{'for': id})
+
Modified: zope.app.form/trunk/src/zope/app/form/browser/source.txt
===================================================================
--- zope.app.form/trunk/src/zope/app/form/browser/source.txt 2007-07-02 09:44:26 UTC (rev 77293)
+++ zope.app.form/trunk/src/zope/app/form/browser/source.txt 2007-07-02 09:52:32 UTC (rev 77294)
@@ -299,17 +299,20 @@
>>> print widget() # doctest: +NORMALIZE_WHITESPACE
<div>
<div class="value">
- <input class="checkboxType" id="field.dogs.0" name="field.dogs"
- type="checkbox" value="c3BvdA==" /> spot<br
- /><input class="checkboxType" id="field.dogs.1"
- name="field.dogs" type="checkbox" value="Ym93c2Vy" /> bowser<br
- /><input class="checkboxType" id="field.dogs.2"
- name="field.dogs" type="checkbox" value="cHJpbmNl" /> prince<br
- /><input class="checkboxType" id="field.dogs.3"
+ <label for="field.dogs.0"><input class="checkboxType" id="field.dogs.0"
+ name="field.dogs" type="checkbox" value="c3BvdA==" /> spot</label><br
+ /><label for="field.dogs.1"><input class="checkboxType" id="field.dogs.1"
+ name="field.dogs" type="checkbox" value="Ym93c2Vy"
+ /> bowser</label><br
+ /><label for="field.dogs.2"><input class="checkboxType" id="field.dogs.2"
+ name="field.dogs" type="checkbox" value="cHJpbmNl"
+ /> prince</label><br
+ /><label for="field.dogs.3"><input class="checkboxType" id="field.dogs.3"
name="field.dogs" type="checkbox"
- value="ZHVjaGVzcw==" /> duchess<br
- /><input class="checkboxType" id="field.dogs.4"
- name="field.dogs" type="checkbox" value="bGFzc2ll" /> lassie
+ value="ZHVjaGVzcw==" /> duchess</label><br
+ /><label for="field.dogs.4"><input class="checkboxType" id="field.dogs.4"
+ name="field.dogs" type="checkbox" value="bGFzc2ll"
+ /> lassie</label>
</div>
<input name="field.dogs-empty-marker" type="hidden" value="1" />
</div>
@@ -340,17 +343,21 @@
>>> print widget() # doctest: +NORMALIZE_WHITESPACE
<div>
<div class="value">
- <input class="checkboxType" checked="checked" id="field.dogs.0"
- name="field.dogs" type="checkbox" value="c3BvdA==" /> spot<br
- /><input class="checkboxType" id="field.dogs.1"
- name="field.dogs" type="checkbox" value="Ym93c2Vy" /> bowser<br
- /><input class="checkboxType" id="field.dogs.2"
- name="field.dogs" type="checkbox" value="cHJpbmNl" /> prince<br
- /><input class="checkboxType" id="field.dogs.3"
+ <label for="field.dogs.0"><input class="checkboxType" checked="checked"
+ id="field.dogs.0" name="field.dogs" type="checkbox" value="c3BvdA=="
+ /> spot</label><br
+ /><label for="field.dogs.1"><input class="checkboxType" id="field.dogs.1"
+ name="field.dogs" type="checkbox" value="Ym93c2Vy"
+ /> bowser</label><br
+ /><label for="field.dogs.2"><input class="checkboxType" id="field.dogs.2"
+ name="field.dogs" type="checkbox" value="cHJpbmNl"
+ /> prince</label><br
+ /><label for="field.dogs.3"><input class="checkboxType" id="field.dogs.3"
name="field.dogs" type="checkbox"
- value="ZHVjaGVzcw==" /> duchess<br
- /><input class="checkboxType" checked="checked" id="field.dogs.4"
- name="field.dogs" type="checkbox" value="bGFzc2ll" /> lassie
+ value="ZHVjaGVzcw==" /> duchess</label><br
+ /><label for="field.dogs.4"><input class="checkboxType" checked="checked"
+ id="field.dogs.4" name="field.dogs" type="checkbox" value="bGFzc2ll"
+ /> lassie</label>
</div>
<input name="field.dogs-empty-marker" type="hidden" value="1" />
</div>
Modified: zope.app.form/trunk/src/zope/app/form/browser/tests/test_itemswidget.py
===================================================================
--- zope.app.form/trunk/src/zope/app/form/browser/tests/test_itemswidget.py 2007-07-02 09:44:26 UTC (rev 77293)
+++ zope.app.form/trunk/src/zope/app/form/browser/tests/test_itemswidget.py 2007-07-02 09:52:32 UTC (rev 77294)
@@ -536,9 +536,10 @@
def test_renderValue(self):
widget = self._makeWidget()
- self.verifyResult(widget.renderValue(None), ['<br /><input'])
+ self.verifyResult(widget.renderValue(None), ['<br /><label for='])
widget.orientation='horizontal'
- self.verifyResult(widget.renderValue(None), [' <input'])
+ self.verifyResult(widget.renderValue(None),
+ [' <label for='])
def test_renderItemsWithValues(self):
widget = self._makeWidget()
More information about the Checkins
mailing list