[Checkins] SVN: z3c.form/trunk/ Add a hidden widget template for the ``ISelectWidget``.

Daniel Nouri daniel.nouri at gmail.com
Tue Dec 4 10:22:52 EST 2007


Log message for revision 82117:
  Add a hidden widget template for the ``ISelectWidget``.
  

Changed:
  U   z3c.form/trunk/CHANGES.txt
  U   z3c.form/trunk/TODOS.txt
  U   z3c.form/trunk/src/z3c/form/browser/select.txt
  U   z3c.form/trunk/src/z3c/form/browser/select.zcml
  A   z3c.form/trunk/src/z3c/form/browser/select_hidden.pt
  U   z3c.form/trunk/src/z3c/form/testing.py

-=-
Modified: z3c.form/trunk/CHANGES.txt
===================================================================
--- z3c.form/trunk/CHANGES.txt	2007-12-04 08:06:58 UTC (rev 82116)
+++ z3c.form/trunk/CHANGES.txt	2007-12-04 15:22:52 UTC (rev 82117)
@@ -6,6 +6,8 @@
 After Version 1.7.0
 -------------------
 
+- Feature: Add a hidden widget template for the ``ISelectWidget``.
+
 - Bug: ``createId`` could not handle arbitrary unicode input. Thanks to
   Andreas Reuleaux for reporting the bug and a patch for it. (Added
   descriptive doctests for the function in the process.)

Modified: z3c.form/trunk/TODOS.txt
===================================================================
--- z3c.form/trunk/TODOS.txt	2007-12-04 08:06:58 UTC (rev 82116)
+++ z3c.form/trunk/TODOS.txt	2007-12-04 15:22:52 UTC (rev 82117)
@@ -5,11 +5,10 @@
 Framework
 ---------
 
-- There is only a hidden widget template registered for ``ITextWidget``. We
-  have to define more hidden widgets for sequence etc.
+- There is only hidden widget templates registered for ``ITextWidget``
+  and ``ISelectWidget``. We have to define more hidden widgets.
 
 
-
 Documentation
 -------------
 

Modified: z3c.form/trunk/src/z3c/form/browser/select.txt
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/select.txt	2007-12-04 08:06:58 UTC (rev 82116)
+++ z3c.form/trunk/src/z3c/form/browser/select.txt	2007-12-04 15:22:52 UTC (rev 82117)
@@ -212,3 +212,25 @@
   >>> widget.update()
   >>> widget.promptMessage
   u'please select a value'
+
+Hidden Widget
+-------------
+
+The select widget comes with a template for ``HIDDEN_MODE``.  Let's
+register it first:
+
+  >>> zope.component.provideAdapter(
+  ...     WidgetTemplateFactory(getPath('select_hidden.pt'), 'text/html'),
+  ...     (None, None, None, None, interfaces.ISelectWidget),
+  ...     IPageTemplate, name=interfaces.HIDDEN_MODE)
+
+We ca now set our widget's mode to hidden and render it:
+
+  >>> widget.mode = interfaces.HIDDEN_MODE
+  >>> widget.value = ['b']
+  >>> widget.update()
+  >>> print widget.render() # doctest: +NORMALIZE_WHITESPACE
+  <input type="hidden" name="widget.name:list"
+         class="hidden-widget" value="b" id="widget-id-1" />
+  <input name="widget.name-empty-marker" type="hidden"
+         value="1" />

Modified: z3c.form/trunk/src/z3c/form/browser/select.zcml
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/select.zcml	2007-12-04 08:06:58 UTC (rev 82116)
+++ z3c.form/trunk/src/z3c/form/browser/select.zcml	2007-12-04 15:22:52 UTC (rev 82117)
@@ -36,4 +36,11 @@
       template="select_input.pt"
       />
 
+  <z3c:widgetTemplate
+      mode="hidden"
+      widget="z3c.form.interfaces.ISelectWidget"
+      layer="z3c.form.interfaces.IFormLayer"
+      template="select_hidden.pt"
+      />
+
 </configure>

Added: z3c.form/trunk/src/z3c/form/browser/select_hidden.pt
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/select_hidden.pt	                        (rev 0)
+++ z3c.form/trunk/src/z3c/form/browser/select_hidden.pt	2007-12-04 15:22:52 UTC (rev 82117)
@@ -0,0 +1,9 @@
+<tal:block define="id view/id;
+                   name string:${view/name}:list"
+           repeat="item view/items">
+  <input type="hidden" name="" class="hidden-widget"
+         tal:condition="item/selected"
+         tal:attributes="name name; value item/value; id item/id" />
+</tal:block>
+<input name="field-empty-marker" type="hidden" value="1"
+       tal:attributes="name string:${view/name}-empty-marker" />

Modified: z3c.form/trunk/src/z3c/form/testing.py
===================================================================
--- z3c.form/trunk/src/z3c/form/testing.py	2007-12-04 08:06:58 UTC (rev 82116)
+++ z3c.form/trunk/src/z3c/form/testing.py	2007-12-04 15:22:52 UTC (rev 82117)
@@ -121,6 +121,10 @@
         widget.WidgetTemplateFactory(getPath('select_display.pt'), 'text/html'),
         (None, None, None, None, interfaces.ISelectWidget),
         IPageTemplate, name=interfaces.DISPLAY_MODE)
+    zope.component.provideAdapter(
+        widget.WidgetTemplateFactory(getPath('select_hidden.pt'), 'text/html'),
+        (None, None, None, None, interfaces.ISelectWidget),
+        IPageTemplate, name=interfaces.HIDDEN_MODE)
     # Submit Field Widget
     zope.component.provideAdapter(
         widget.WidgetTemplateFactory(getPath('submit_input.pt'), 'text/html'),



More information about the Checkins mailing list