[Checkins] SVN: z3c.form/trunk/ Bugfix: SingleCheckBoxFieldWidget shouldn't repeat the label twice (once in
Marius Gedminas
marius at pov.lt
Tue Sep 30 20:43:55 EDT 2008
Log message for revision 91643:
Bugfix: SingleCheckBoxFieldWidget shouldn't repeat the label twice (once in
<div class="label">, and once in the <label> next to the checkbox).
Changed:
U z3c.form/trunk/CHANGES.txt
U z3c.form/trunk/src/z3c/form/browser/README.txt
U z3c.form/trunk/src/z3c/form/browser/checkbox.py
U z3c.form/trunk/src/z3c/form/browser/checkbox.txt
-=-
Modified: z3c.form/trunk/CHANGES.txt
===================================================================
--- z3c.form/trunk/CHANGES.txt 2008-09-30 22:16:43 UTC (rev 91642)
+++ z3c.form/trunk/CHANGES.txt 2008-10-01 00:43:54 UTC (rev 91643)
@@ -53,7 +53,10 @@
- Bug: Remove unused imports, adjust buildout dependencies in `setup.py`.
+- Bug: SingleCheckBoxFieldWidget doesn't repeat the label twice (once in
+ <div class="label">, and once in the <label> next to the checkbox).
+
Version 1.9.0 (2008-08-26)
--------------------------
Modified: z3c.form/trunk/src/z3c/form/browser/README.txt
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/README.txt 2008-09-30 22:16:43 UTC (rev 91642)
+++ z3c.form/trunk/src/z3c/form/browser/README.txt 2008-10-01 00:43:54 UTC (rev 91643)
@@ -93,7 +93,7 @@
Bool
----
- >>> field = zope.schema.Bool(default=True)
+ >>> field = zope.schema.Bool(default=True, title=u"Check me")
>>> widget = setupWidget(field)
>>> widget.update()
@@ -155,7 +155,7 @@
<span id="foo" class="checkbox-widget required bool-field"><span
class="selected-option">yes</span></span>
-We can also have a sinle checkbox button for the boolean.
+We can also have a single checkbox button for the boolean.
>>> widget = checkbox.SingleCheckBoxFieldWidget(field, TestRequest())
>>> widget.id = 'foo'
@@ -168,7 +168,7 @@
class="single-checkbox-widget required bool-field"
value="selected" checked="checked" />
<label for="foo-0">
- <span class="label"></span>
+ <span class="label">Check me</span>
</label>
</span>
<input name="bar-empty-marker" type="hidden" value="1" />
@@ -177,9 +177,14 @@
>>> print widget.render()
<span id="foo"
class="single-checkbox-widget required bool-field"><span
- class="selected-option"></span></span>
+ class="selected-option">Check me</span></span>
+Note that the widget label is not repeated twice:
+ >>> widget.label
+ u''
+
+
Button
------
Modified: z3c.form/trunk/src/z3c/form/browser/checkbox.py
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/checkbox.py 2008-09-30 22:16:43 UTC (rev 91642)
+++ z3c.form/trunk/src/z3c/form/browser/checkbox.py 2008-10-01 00:43:54 UTC (rev 91643)
@@ -73,7 +73,8 @@
if self.terms is None:
self.terms = term.Terms()
self.terms.terms = vocabulary.SimpleVocabulary((
- vocabulary.SimpleTerm('selected', 'selected', self.label), ))
+ vocabulary.SimpleTerm('selected', 'selected',
+ self.label or self.field.title), ))
return self.terms
@@ -81,4 +82,6 @@
@zope.interface.implementer(interfaces.IFieldWidget)
def SingleCheckBoxFieldWidget(field, request):
"""IFieldWidget factory for CheckBoxWidget."""
- return FieldWidget(field, SingleCheckBoxWidget(request))
+ widget = FieldWidget(field, SingleCheckBoxWidget(request))
+ widget.label = u'' # don't show the label twice
+ return widget
Modified: z3c.form/trunk/src/z3c/form/browser/checkbox.txt
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/checkbox.txt 2008-09-30 22:16:43 UTC (rev 91642)
+++ z3c.form/trunk/src/z3c/form/browser/checkbox.txt 2008-10-01 00:43:54 UTC (rev 91643)
@@ -176,3 +176,25 @@
</span>
<input name="widget.name-empty-marker" type="hidden"
value="1" />
+
+If you do not specify the label on the widget directly, it is taken from the
+field
+
+ >>> from zope.schema import Bool
+ >>> widget = checkbox.SingleCheckBoxWidget(request)
+ >>> widget.id = 'widget-id'
+ >>> widget.name = 'widget.name'
+ >>> widget.field = Bool(title=u"Do you REALLY want that?")
+ >>> widget.update()
+ >>> print widget.render()
+ <span class="option">
+ <input type="checkbox" id="widget-id-0"
+ name="widget.name:list"
+ class="single-checkbox-widget" value="selected" />
+ <label for="widget-id-0">
+ <span class="label">Do you REALLY want that?</span>
+ </label>
+ </span>
+ <input name="widget.name-empty-marker" type="hidden"
+ value="1" />
+
More information about the Checkins
mailing list