[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