[Checkins] SVN: z3c.form/trunk/src/z3c/form/ Implemented hidden
widget support
Roger Ineichen
roger at projekt01.ch
Sun Jun 17 09:34:13 EDT 2007
Log message for revision 76726:
Implemented hidden widget support
Added tests
Changed:
U z3c.form/trunk/src/z3c/form/CHANGES.txt
U z3c.form/trunk/src/z3c/form/browser/text.zcml
A z3c.form/trunk/src/z3c/form/browser/text_hidden.pt
U z3c.form/trunk/src/z3c/form/form.txt
U z3c.form/trunk/src/z3c/form/interfaces.py
U z3c.form/trunk/src/z3c/form/testing.py
-=-
Modified: z3c.form/trunk/src/z3c/form/CHANGES.txt
===================================================================
--- z3c.form/trunk/src/z3c/form/CHANGES.txt 2007-06-17 13:19:36 UTC (rev 76725)
+++ z3c.form/trunk/src/z3c/form/CHANGES.txt 2007-06-17 13:34:11 UTC (rev 76726)
@@ -2,6 +2,13 @@
CHANGES
=======
+- Added support for ``hidden`` fields. You can now use the ``hidden`` mode
+ for widgets which should get rendered as <input type="hidden" />. Note;
+ There is only a hidden widget template registered for ITextWidget. We have to
+ define more hidden widgets for sequence etc. Also make sure you use the new
+ formui templates which will avoid rendering labels for hidden widgets or
+ adjust your custom form macros.
+
- Added missing_value support to data/time converters
- Changed registration of file upload data converter. Register
Modified: z3c.form/trunk/src/z3c/form/browser/text.zcml
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/text.zcml 2007-06-17 13:19:36 UTC (rev 76725)
+++ z3c.form/trunk/src/z3c/form/browser/text.zcml 2007-06-17 13:34:11 UTC (rev 76726)
@@ -89,4 +89,11 @@
template="text_input.pt"
/>
+ <z3c:widgetTemplate
+ mode="hidden"
+ widget="z3c.form.interfaces.ITextWidget"
+ layer="z3c.form.interfaces.IFormLayer"
+ template="text_hidden.pt"
+ />
+
</configure>
Added: z3c.form/trunk/src/z3c/form/browser/text_hidden.pt
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/text_hidden.pt (rev 0)
+++ z3c.form/trunk/src/z3c/form/browser/text_hidden.pt 2007-06-17 13:34:11 UTC (rev 76726)
@@ -0,0 +1,13 @@
+<input type="hidden" id="" name="" class="hiddenWidget" size="" alt="" title=""
+ tabindex="" disabled="" readonly="" accesskey="" maxlength="" value=""
+ tal:attributes="id view/id;
+ name view/name;
+ title view/title;
+ alt view/alt;
+ tabindex view/tabindex;
+ disabled view/disabled;
+ readonly view/readonly;
+ accesskey view/accesskey;
+ maxlength view/maxlength;
+ value view/value;
+ size view/size" />
Modified: z3c.form/trunk/src/z3c/form/form.txt
===================================================================
--- z3c.form/trunk/src/z3c/form/form.txt 2007-06-17 13:19:36 UTC (rev 76725)
+++ z3c.form/trunk/src/z3c/form/form.txt 2007-06-17 13:34:11 UTC (rev 76726)
@@ -1122,3 +1122,36 @@
name="form.widgets.name" class="MyCSS"
value="Claudia Richter" />
...
+
+
+Hidden fields
+-------------
+
+Another important part of a form is that we can generate hidden widgets. We can
+do this in a form by defining a widget mode. We can do this by override the
+setUpWidgets method.
+
+ >>> class HiddenFieldEditForm(form.EditForm):
+ ...
+ ... fields = field.Fields(IPerson)
+ ... fields['name'].widgetFactory = MyFieldWidget
+ ...
+ ... def updateWidgets(self):
+ ... super(HiddenFieldEditForm, self).updateWidgets()
+ ... self.widgets['age'].mode = interfaces.HIDDEN_MODE
+
+We can see that the widget gets rendered as hidden:
+
+ >>> hiddenEdit = HiddenFieldEditForm(root[u'srichter'], TestRequest())
+ >>> addTemplate(hiddenEdit)
+ >>> hiddenEdit.update()
+ >>> print hiddenEdit.render()
+ <html>...
+ <input type="text" id="form-widgets-name"
+ name="form.widgets.name" class="MyCSS"
+ value="Claudia Richter" />
+ ...
+ <input type="hidden" id="form-widgets-age"
+ name="form.widgets.age" class="hiddenWidget"
+ value="27" />
+ ...
\ No newline at end of file
Modified: z3c.form/trunk/src/z3c/form/interfaces.py
===================================================================
--- z3c.form/trunk/src/z3c/form/interfaces.py 2007-06-17 13:19:36 UTC (rev 76725)
+++ z3c.form/trunk/src/z3c/form/interfaces.py 2007-06-17 13:34:11 UTC (rev 76726)
@@ -28,6 +28,7 @@
INPUT_MODE = 'input'
DISPLAY_MODE = 'display'
+HIDDEN_MODE = 'hidden'
class NOVALUE(object):
def __repr__(self):
Modified: z3c.form/trunk/src/z3c/form/testing.py
===================================================================
--- z3c.form/trunk/src/z3c/form/testing.py 2007-06-17 13:19:36 UTC (rev 76725)
+++ z3c.form/trunk/src/z3c/form/testing.py 2007-06-17 13:34:11 UTC (rev 76726)
@@ -97,6 +97,10 @@
widget.WidgetTemplateFactory(getPath('text_display.pt'), 'text/html'),
(None, None, None, None, interfaces.ITextWidget),
IPageTemplate, name=interfaces.DISPLAY_MODE)
+ zope.component.provideAdapter(
+ widget.WidgetTemplateFactory(getPath('text_hidden.pt'), 'text/html'),
+ (None, None, None, None, interfaces.ITextWidget),
+ IPageTemplate, name=interfaces.HIDDEN_MODE)
# Radio Field Widget
zope.component.provideAdapter(radio.RadioFieldWidget)
zope.component.provideAdapter(
More information about the Checkins
mailing list