[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