[Zope3-checkins] SVN: Zope3/trunk/src/zope/app/demo/widget/ Added
more widgets and find out the issuse:
Roger Ineichen
roger at projekt01.ch
Sat Mar 19 13:03:23 EST 2005
Log message for revision 29574:
Added more widgets and find out the issuse:
* 296: missing display widgets
reported in the doc/TODO.txt
Changed:
A Zope3/trunk/src/zope/app/demo/widget/boolwidget.py
A Zope3/trunk/src/zope/app/demo/widget/boolwidget.zcml
A Zope3/trunk/src/zope/app/demo/widget/browser/boolwidget.zcml
U Zope3/trunk/src/zope/app/demo/widget/browser/configure.zcml
U Zope3/trunk/src/zope/app/demo/widget/configure.zcml
U Zope3/trunk/src/zope/app/demo/widget/ftests.py
A Zope3/trunk/src/zope/app/demo/widget/help/boolwidget.txt
U Zope3/trunk/src/zope/app/demo/widget/help/configure.zcml
A Zope3/trunk/src/zope/app/demo/widget/help/intwidget.txt
A Zope3/trunk/src/zope/app/demo/widget/help/textareawidget.txt
U Zope3/trunk/src/zope/app/demo/widget/help/textwidget.txt
U Zope3/trunk/src/zope/app/demo/widget/interfaces/__init__.py
A Zope3/trunk/src/zope/app/demo/widget/interfaces/boolwidget.py
U Zope3/trunk/src/zope/app/demo/widget/tests.py
U Zope3/trunk/src/zope/app/demo/widget/textareawidget.zcml
-=-
Added: Zope3/trunk/src/zope/app/demo/widget/boolwidget.py
===================================================================
--- Zope3/trunk/src/zope/app/demo/widget/boolwidget.py 2005-03-19 17:23:01 UTC (rev 29573)
+++ Zope3/trunk/src/zope/app/demo/widget/boolwidget.py 2005-03-19 18:03:23 UTC (rev 29574)
@@ -0,0 +1,63 @@
+##############################################################################
+#
+# Copyright (c) 2005 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""Demo widget implementation
+
+$Id: intwidget.py 29331 2005-02-27 23:49:31Z rogerineichen $
+"""
+__docformat__ = 'restructuredtext'
+
+from persistent import Persistent
+from zope.interface import implements
+from zope.schema.fieldproperty import FieldProperty
+
+from zope.app.demo.widget.interfaces import IDemoBoolWidget
+from zope.app.demo.widget.app import DemoWidget
+
+
+class DemoBoolWidget(DemoWidget):
+ """Demo TextWidget implementation.
+
+ >>> content = DemoBoolWidget()
+ >>> content.standard
+
+ >>> content.required = True
+ >>> content.required
+ True
+
+ >>> content.readonly = True
+ >>> content.readonly
+ True
+
+ >>> content.default
+ True
+
+ >>> content.standard
+
+ >>> content.required = True
+ >>> content.required
+ True
+
+ >>> content.constraint = True
+ >>> content.constraint
+ True
+
+ """
+
+ implements(IDemoBoolWidget)
+
+ standard = FieldProperty(IDemoBoolWidget['standard'])
+ required = FieldProperty(IDemoBoolWidget['required'])
+ readonly = FieldProperty(IDemoBoolWidget['readonly'])
+ constraint = FieldProperty(IDemoBoolWidget['constraint'])
+ default = FieldProperty(IDemoBoolWidget['default'])
\ No newline at end of file
Property changes on: Zope3/trunk/src/zope/app/demo/widget/boolwidget.py
___________________________________________________________________
Name: svn:eol-style
+ native
Added: Zope3/trunk/src/zope/app/demo/widget/boolwidget.zcml
===================================================================
--- Zope3/trunk/src/zope/app/demo/widget/boolwidget.zcml 2005-03-19 17:23:01 UTC (rev 29573)
+++ Zope3/trunk/src/zope/app/demo/widget/boolwidget.zcml 2005-03-19 18:03:23 UTC (rev 29574)
@@ -0,0 +1,17 @@
+<configure
+ xmlns="http://namespaces.zope.org/zope"
+ i18n_domain="zope">
+
+ <content class=".boolwidget.DemoBoolWidget">
+
+ <require permission="zope.View"
+ interface=".interfaces.IDemoBoolWidget"
+ />
+
+ <require permission="zope.ManageContent"
+ set_schema=".interfaces.IDemoBoolWidget"
+ />
+
+ </content>
+
+</configure>
Property changes on: Zope3/trunk/src/zope/app/demo/widget/boolwidget.zcml
___________________________________________________________________
Name: svn:eol-style
+ native
Added: Zope3/trunk/src/zope/app/demo/widget/browser/boolwidget.zcml
===================================================================
--- Zope3/trunk/src/zope/app/demo/widget/browser/boolwidget.zcml 2005-03-19 17:23:01 UTC (rev 29573)
+++ Zope3/trunk/src/zope/app/demo/widget/browser/boolwidget.zcml 2005-03-19 18:03:23 UTC (rev 29574)
@@ -0,0 +1,47 @@
+<configure
+ xmlns="http://namespaces.zope.org/browser"
+ i18n_domain="zope">
+
+ <addMenuItem
+ title="BoolWidget"
+ description="Add a Demo BoolWidget"
+ class="..boolwidget.DemoBoolWidget"
+ permission="zope.ManageContent"
+ view="addDemoBoolWidget.html"
+ />
+
+ <addform
+ name="addDemoBoolWidget.html"
+ label="Add a Demo BoolWidget"
+ schema="..interfaces.IWriteDemoBoolWidget"
+ content_factory="..boolwidget.DemoBoolWidget"
+ permission="zope.ManageContent"
+ />
+
+ <schemadisplay
+ name="index.html"
+ schema="..interfaces.IDemoBoolWidget"
+ label="BoolWidget Index"
+ permission="zope.ManageServices"
+ menu="zmi_views" title="View"
+ />
+
+ <editform
+ name="edit.html"
+ label="Edit"
+ for="..interfaces.IDemoBoolWidget"
+ schema="..interfaces.IWriteDemoBoolWidget"
+ menu="zmi_views" title="Edit"
+ permission="zope.ManageContent"
+ />
+
+ <editform
+ name="popupEdit.html"
+ label="Popup Edit"
+ for="..interfaces.IDemoBoolWidget"
+ schema="..interfaces.IDemoBoolWidget"
+ permission="zope.ManageContent"
+ template="popup.pt"
+ />
+
+</configure>
Property changes on: Zope3/trunk/src/zope/app/demo/widget/browser/boolwidget.zcml
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: Zope3/trunk/src/zope/app/demo/widget/browser/configure.zcml
===================================================================
--- Zope3/trunk/src/zope/app/demo/widget/browser/configure.zcml 2005-03-19 17:23:01 UTC (rev 29573)
+++ Zope3/trunk/src/zope/app/demo/widget/browser/configure.zcml 2005-03-19 18:03:23 UTC (rev 29574)
@@ -29,6 +29,7 @@
action="javascript:popup('./popupEdit.html', 'popup', 'height=460,width=500,resizable=1,scrollbars=yes,location=no,status=no,toolbar=no,menubar=no')"
/>
+ <include file="boolwidget.zcml" />
<include file="intwidget.zcml" />
<include file="textwidget.zcml" />
<include file="textareawidget.zcml" />
Modified: Zope3/trunk/src/zope/app/demo/widget/configure.zcml
===================================================================
--- Zope3/trunk/src/zope/app/demo/widget/configure.zcml 2005-03-19 17:23:01 UTC (rev 29573)
+++ Zope3/trunk/src/zope/app/demo/widget/configure.zcml 2005-03-19 18:03:23 UTC (rev 29574)
@@ -18,6 +18,7 @@
</content>
<!-- demo widgets -->
+ <include file="boolwidget.zcml" />
<include file="intwidget.zcml" />
<include file="textwidget.zcml" />
<include file="textareawidget.zcml" />
Modified: Zope3/trunk/src/zope/app/demo/widget/ftests.py
===================================================================
--- Zope3/trunk/src/zope/app/demo/widget/ftests.py 2005-03-19 17:23:01 UTC (rev 29573)
+++ Zope3/trunk/src/zope/app/demo/widget/ftests.py 2005-03-19 18:03:23 UTC (rev 29574)
@@ -17,11 +17,15 @@
"""
import unittest
-from zope.testing import doctest, doctestunit
from zope.app.testing import functional
def test_suite():
- return functional.FunctionalDocFileSuite('./help/textwidget.txt')
+ return unittest.TestSuite((
+ functional.FunctionalDocFileSuite('./help/boolwidget.txt'),
+ functional.FunctionalDocFileSuite('./help/intwidget.txt'),
+ functional.FunctionalDocFileSuite('./help/textwidget.txt'),
+ functional.FunctionalDocFileSuite('./help/textareawidget.txt'),
+ ))
if __name__ == '__main__':
unittest.main(defaultTest='test_suite')
Added: Zope3/trunk/src/zope/app/demo/widget/help/boolwidget.txt
===================================================================
--- Zope3/trunk/src/zope/app/demo/widget/help/boolwidget.txt 2005-03-19 17:23:01 UTC (rev 29573)
+++ Zope3/trunk/src/zope/app/demo/widget/help/boolwidget.txt 2005-03-19 18:03:23 UTC (rev 29574)
@@ -0,0 +1,235 @@
+=================
+BoolWidget sample
+=================
+
+Interface
+---------
+
+Add a interfaces with Bool fields::
+
+class IReadDemoBoolWidget(Interface):
+ """Widget read interface."""
+
+ readonly = Bool(
+ title = _(u"readonly"),
+ description=_(u"zope.schema.Int field with readonly = True."),
+ required=False,
+ readonly=True,
+ default=42)
+
+
+class IWriteDemoBoolWidget(Interface):
+ """Widget write interface."""
+
+ standard = Bool(
+ title = _(u"standard"),
+ description=_(u"""zope.schema.Bool field with only title and description."""),
+ )
+
+ required = Bool(
+ title = _(u"required"),
+ description=_(u"zope.schema.Bool field with required = True."),
+ required=True)
+
+ constraint = Bool(
+ title = _(u"constraint"),
+ description=_(u"""zope.schema.Bool field with constraint """
+ """lambda x: x == True."""),
+ constraint=lambda x: x == True)
+
+ default = Bool(
+ title = _(u"default"),
+ description=_(u"""zope.schema.Bool field with """
+ """default = True."""),
+ default=True)
+
+
+class IDemoBoolWidget(IDemoWidget, IReadDemoBoolWidget, IWriteDemoBoolWidget):
+ """Widget interface inherites read and write interfaces."""
+
+Define a class::
+
+class DemoBoolWidget(DemoWidget):
+ """Demo TextWidget implementation."""
+
+ implements(IDemoBoolWidget)
+
+ standard = FieldProperty(IDemoBoolWidget['standard'])
+ required = FieldProperty(IDemoBoolWidget['required'])
+ readonly = FieldProperty(IDemoBoolWidget['readonly'])
+ constraint = FieldProperty(IDemoBoolWidget['constraint'])
+ default = FieldProperty(IDemoBoolWidget['default'])
+
+Register the class::
+
+ <content class=".boolwidget.DemoBoolWidget">
+
+ <require permission="zope.View"
+ interface=".interfaces.IDemoBoolWidget"
+ />
+
+ <require permission="zope.ManageContent"
+ set_schema=".interfaces.IDemoBoolWidget"
+ />
+
+ </content>
+
+Register a addform::
+
+ <addMenuItem
+ title="BoolWidget"
+ description="Add a Demo BoolWidget"
+ class="..boolwidget.DemoBoolWidget"
+ permission="zope.ManageContent"
+ view="addDemoBoolWidget.html"
+ />
+
+ <addform
+ name="addDemoBoolWidget.html"
+ label="Add a Demo BoolWidget"
+ schema="..interfaces.IWriteDemoBoolWidget"
+ content_factory="..boolwidget.DemoBoolWidget"
+ permission="zope.ManageContent"
+ />
+
+Register a editform::
+
+ <editform
+ name="edit.html"
+ label="Edit"
+ for="..interfaces.IDemoBoolWidget"
+ schema="..interfaces.IWriteDemoBoolWidget"
+ menu="zmi_views" title="Edit"
+ permission="zope.ManageContent"
+ />
+
+Add a DemoWidgetContainer for test the widgets::
+
+ >>> print http(r"""
+ ... POST /@@contents.html HTTP/1.1
+ ... Authorization: Basic mgr:mgrpw
+ ... Content-Type: application/x-www-form-urlencoded
+ ...
+ ... type_name=BrowserAdd__zope.app.demo.widget.app.DemoWidgetContainer&new_value=widgets""")
+ HTTP/1.1 303 See Other
+ ...
+
+Add a BoolWidget using the addform::
+
+ >>> print http(r"""
+ ... POST /widgets/+/addDemoBoolWidget.html HTTP/1.1
+ ... Authorization: Basic mgr:mgrpw
+ ... Content-Type: multipart/form-data; boundary=---------------------------7d538b36c0aea
+ ... Referer: http://localhost:8081/widgets/+/addDemoBoolWidget.html=
+ ...
+ ... -----------------------------7d538b36c0aea
+ ... Content-Disposition: form-data; name="field.standard.used"
+ ...
+ ...
+ ... -----------------------------7d538b36c0aea
+ ... Content-Disposition: form-data; name="field.standard"
+ ...
+ ... on
+ ... -----------------------------7d538b36c0aea
+ ... Content-Disposition: form-data; name="field.required.used"
+ ...
+ ...
+ ... -----------------------------7d538b36c0aea
+ ... Content-Disposition: form-data; name="field.required"
+ ...
+ ... on
+ ... -----------------------------7d538b36c0aea
+ ... Content-Disposition: form-data; name="field.constraint.used"
+ ...
+ ...
+ ... -----------------------------7d538b36c0aea
+ ... Content-Disposition: form-data; name="field.constraint"
+ ...
+ ... on
+ ... -----------------------------7d538b36c0aea
+ ... Content-Disposition: form-data; name="field.default.used"
+ ...
+ ...
+ ... -----------------------------7d538b36c0aea
+ ... Content-Disposition: form-data; name="field.default"
+ ...
+ ... on
+ ... -----------------------------7d538b36c0aea
+ ... Content-Disposition: form-data; name="UPDATE_SUBMIT"
+ ...
+ ... Add
+ ... -----------------------------7d538b36c0aea
+ ... Content-Disposition: form-data; name="add_input_name"
+ ...
+ ... demo
+ ... -----------------------------7d538b36c0aea--
+ ... """)
+ HTTP/1.1 303 See Other
+ ...
+ <div class="row">
+ <div class="label">
+ <label for="field.standard"
+ title="zope.schema.Bool field with only title and description.">standard</label>
+ </div>
+ <div class="field"><input class="hiddenType" id="field.standard.used" name="field.standard.used" type="hidden" value="" /> <input class="checkboxType" checked="checked" id="field.standard" name="field.standard" type="checkbox" value="on" /></div>
+ </div>
+ <div class="row">
+ <div class="label">
+ <label for="field.required"
+ title="zope.schema.Bool field with required = True.">required</label>
+ </div>
+ <div class="field"><input class="hiddenType" id="field.required.used" name="field.required.used" type="hidden" value="" /> <input class="checkboxType" checked="checked" id="field.required" name="field.required" type="checkbox" value="on" /></div>
+ </div>
+ <div class="row">
+ <div class="label">
+ <label for="field.constraint"
+ title="zope.schema.Bool field with constraint lambda x: x == True.">constraint</label>
+ </div>
+ <div class="field"><input class="hiddenType" id="field.constraint.used" name="field.constraint.used" type="hidden" value="" /> <input class="checkboxType" checked="checked" id="field.constraint" name="field.constraint" type="checkbox" value="on" /></div>
+ </div>
+ <div class="row">
+ <div class="label">
+ <label for="field.default"
+ title="zope.schema.Bool field with default = True.">default</label>
+ </div>
+ <div class="field"><input class="hiddenType" id="field.default.used" name="field.default.used" type="hidden" value="" /> <input class="checkboxType" checked="checked" id="field.default" name="field.default" type="checkbox" value="on" /></div>
+ </div...
+
+
+Check the editform::
+
+ >>> print http(r"""
+ ... GET /widgets/demo/@@edit.html HTTP/1.1
+ ... Authorization: Basic mgr:mgrpw
+ ... Referer: http://localhost:8081/widgets/demo/@@contents.html
+ ... """)
+ HTTP/1.1 200 Ok
+ ...
+ <div class="row">
+ <div class="label">
+ <label for="field.standard"
+ title="zope.schema.Bool field with only title and description.">standard</label>
+ </div>
+ <div class="field"><input class="hiddenType" id="field.standard.used" name="field.standard.used" type="hidden" value="" /> <input class="checkboxType" checked="checked" id="field.standard" name="field.standard" type="checkbox" value="on" /></div>
+ </div>
+ <div class="row">
+ <div class="label">
+ <label for="field.required"
+ title="zope.schema.Bool field with required = True.">required</label>
+ </div>
+ <div class="field"><input class="hiddenType" id="field.required.used" name="field.required.used" type="hidden" value="" /> <input class="checkboxType" checked="checked" id="field.required" name="field.required" type="checkbox" value="on" /></div>
+ </div>
+ <div class="row">
+ <div class="label">
+ <label for="field.constraint"
+ title="zope.schema.Bool field with constraint lambda x: x == True.">constraint</label>
+ </div>
+ <div class="field"><input class="hiddenType" id="field.constraint.used" name="field.constraint.used" type="hidden" value="" /> <input class="checkboxType" checked="checked" id="field.constraint" name="field.constraint" type="checkbox" value="on" /></div>
+ </div>
+ <div class="row">
+ <div class="label">
+ <label for="field.default"
+ title="zope.schema.Bool field with default = True.">default</label>
+ </div>
+ <div class="field"><input class="hiddenType" id="field.default.used" name="field.default.used" type="hidden" value="" /> <input class="checkboxType" checked="checked" id="field.default" name="field.default" type="checkbox" value="on" /></div>
+ </div...
\ No newline at end of file
Property changes on: Zope3/trunk/src/zope/app/demo/widget/help/boolwidget.txt
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: Zope3/trunk/src/zope/app/demo/widget/help/configure.zcml
===================================================================
--- Zope3/trunk/src/zope/app/demo/widget/help/configure.zcml 2005-03-19 17:23:01 UTC (rev 29573)
+++ Zope3/trunk/src/zope/app/demo/widget/help/configure.zcml 2005-03-19 18:03:23 UTC (rev 29574)
@@ -12,6 +12,22 @@
/>
<help:register
+ id="boolwidget"
+ parent="samples/widgets"
+ title="BoolWidget"
+ doc_path="boolwidget.txt"
+ class="zope.app.onlinehelp.onlinehelptopic.RESTOnlineHelpTopic"
+ />
+
+ <help:register
+ id="intwidget"
+ parent="samples/widgets"
+ title="IntWidget"
+ doc_path="intwidget.txt"
+ class="zope.app.onlinehelp.onlinehelptopic.RESTOnlineHelpTopic"
+ />
+
+ <help:register
id="textwidget"
parent="samples/widgets"
title="TextWidget"
Added: Zope3/trunk/src/zope/app/demo/widget/help/intwidget.txt
===================================================================
--- Zope3/trunk/src/zope/app/demo/widget/help/intwidget.txt 2005-03-19 17:23:01 UTC (rev 29573)
+++ Zope3/trunk/src/zope/app/demo/widget/help/intwidget.txt 2005-03-19 18:03:23 UTC (rev 29574)
@@ -0,0 +1,292 @@
+================
+IntWidget sample
+================
+
+Interface
+---------
+
+Add a interfaces with Int fields::
+
+class IReadDemoIntWidget(Interface):
+ """Widget read interface."""
+
+ readonly = Int(
+ title = _(u"readonly"),
+ description=_(u"zope.schema.Int field with readonly = True."),
+ required=False,
+ readonly=True,
+ default=42)
+
+
+class IWriteDemoIntWidget(Interface):
+ """Widget write interface."""
+
+ standard = Int(
+ title = _(u"standard"),
+ description=_(u"""zope.schema.Int field with only title and description."""),
+ )
+
+ required = Int(
+ title = _(u"required"),
+ description=_(u"zope.schema.Int field with required = True."),
+ required=True)
+
+ constraint = Int(
+ title = _(u"constraint"),
+ description=_(u"""zope.schema.Int field with constraint """
+ """lambda x: x == 42."""),
+ constraint=lambda x: x == 42)
+
+ default = Int(
+ title = _(u"default"),
+ description=_(u"""zope.schema.Int field with """
+ """default = u'default'."""),
+ default=42)
+
+ min = Int(
+ title = _(u"min"),
+ description=_(u"zope.schema.Int field with min = 5."),
+ min=5)
+
+ max = Int(
+ title = _(u"max"),
+ description=_(u"zope.schema.Int field with max = 10"),
+ max=10)
+
+ min_max = Int(
+ title = _(u"min_max"),
+ description=_(u"""zope.schema.Int field with min = 5 and max = 10"""),
+ min=5,
+ max=10)
+
+
+class IDemoIntWidget(IDemoWidget, IReadDemoIntWidget, IWriteDemoIntWidget):
+ """Widget interface inherites read and write interfaces."""
+
+Define a class::
+
+class DemoIntWidget(DemoWidget):
+ """Demo TextWidget implementation."""
+
+ implements(IDemoIntWidget)
+
+ standard = FieldProperty(IDemoIntWidget['standard'])
+ required = FieldProperty(IDemoIntWidget['required'])
+ readonly = FieldProperty(IDemoIntWidget['readonly'])
+ constraint = FieldProperty(IDemoIntWidget['constraint'])
+ default = FieldProperty(IDemoIntWidget['default'])
+ min = FieldProperty(IDemoIntWidget['min'])
+ max = FieldProperty(IDemoIntWidget['max'])
+ min_max = FieldProperty(IDemoIntWidget['min_max'])
+
+Register the class::
+
+ <content class=".intwidget.DemoIntWidget">
+
+ <require permission="zope.View"
+ interface=".interfaces.IDemoIntWidget"
+ />
+
+ <require permission="zope.ManageContent"
+ set_schema=".interfaces.IDemoIntWidget"
+ />
+
+ </content>
+
+Register a addform::
+
+ <addMenuItem
+ title="IntWidget"
+ description="Add a Demo IntWidget"
+ class="..intwidget.DemoIntWidget"
+ permission="zope.ManageContent"
+ view="addDemoIntWidget.html"
+ />
+
+ <addform
+ name="addDemoIntWidget.html"
+ label="Add a Demo IntWidget"
+ schema="..interfaces.IWriteDemoIntWidget"
+ content_factory="..intwidget.DemoIntWidget"
+ permission="zope.ManageContent"
+ />
+
+Register a editform::
+
+ <editform
+ name="edit.html"
+ label="Edit"
+ for="..interfaces.IDemoIntWidget"
+ schema="..interfaces.IWriteDemoIntWidget"
+ menu="zmi_views" title="Edit"
+ permission="zope.ManageContent"
+ />
+
+Add a DemoWidgetContainer for test the widgets::
+
+ >>> print http(r"""
+ ... POST /@@contents.html HTTP/1.1
+ ... Authorization: Basic mgr:mgrpw
+ ... Content-Type: application/x-www-form-urlencoded
+ ...
+ ... type_name=BrowserAdd__zope.app.demo.widget.app.DemoWidgetContainer&new_value=widgets""")
+ HTTP/1.1 303 See Other
+ ...
+
+Add a IntWidget using the addform::
+
+ >>> print http(r"""
+ ... POST /widgets/+/addDemoIntWidget.html%3D HTTP/1.1
+ ... Authorization: Basic mgr:mgrpw
+ ... Content-Type: multipart/form-data; boundary=---------------------------7d538ddc0aea
+ ... Referer: http://localhost:8081/widgets/+/addDemoIntWidget.html=
+ ...
+ ... -----------------------------7d538ddc0aea
+ ... Content-Disposition: form-data; name="field.standard"
+ ...
+ ... 42
+ ... -----------------------------7d538ddc0aea
+ ... Content-Disposition: form-data; name="field.required"
+ ...
+ ... 42
+ ... -----------------------------7d538ddc0aea
+ ... Content-Disposition: form-data; name="field.constraint"
+ ...
+ ... 42
+ ... -----------------------------7d538ddc0aea
+ ... Content-Disposition: form-data; name="field.default"
+ ...
+ ... 42
+ ... -----------------------------7d538ddc0aea
+ ... Content-Disposition: form-data; name="field.min"
+ ...
+ ... 6
+ ... -----------------------------7d538ddc0aea
+ ... Content-Disposition: form-data; name="field.max"
+ ...
+ ... 6
+ ... -----------------------------7d538ddc0aea
+ ... Content-Disposition: form-data; name="field.min_max"
+ ...
+ ... 6
+ ... -----------------------------7d538ddc0aea
+ ... Content-Disposition: form-data; name="UPDATE_SUBMIT"
+ ...
+ ... Add
+ ... -----------------------------7d538ddc0aea
+ ... Content-Disposition: form-data; name="add_input_name"
+ ...
+ ... 42
+ ... -----------------------------7d538ddc0aea--
+ ... """)
+ HTTP/1.1 303 See Other
+ ...
+ <div class="row">
+ <div class="label">
+ <label for="field.standard"
+ title="zope.schema.Int field with only title and description.">standard</label>
+ </div>
+ <div class="field"><input class="textType" id="field.standard" name="field.standard" size="10" type="text" value="42" /></div>
+ </div>
+ <div class="row">
+ <div class="label">
+ <label for="field.required"
+ title="zope.schema.Int field with required = True.">required</label>
+ </div>
+ <div class="field"><input class="textType" id="field.required" name="field.required" size="10" type="text" value="42" /></div>
+ </div>
+ <div class="row">
+ <div class="label">
+ <label for="field.constraint"
+ title="zope.schema.Int field with constraint lambda x: x == 42.">constraint</label>
+ </div>
+ <div class="field"><input class="textType" id="field.constraint" name="field.constraint" size="10" type="text" value="42" /></div>
+ </div>
+ <div class="row">
+ <div class="label">
+ <label for="field.default"
+ title="zope.schema.Int field with default = u'default'.">default</label>
+ </div>
+ <div class="field"><input class="textType" id="field.default" name="field.default" size="10" type="text" value="42" /></div>
+ </div>
+ <div class="row">
+ <div class="label">
+ <label for="field.min"
+ title="zope.schema.Int field with min = 5.">min</label>
+ </div>
+ <div class="field"><input class="textType" id="field.min" name="field.min" size="10" type="text" value="6" /></div>
+ </div>
+ <div class="row">
+ <div class="label">
+ <label for="field.max"
+ title="zope.schema.Int field with max = 10">max</label>
+ </div>
+ <div class="field"><input class="textType" id="field.max" name="field.max" size="10" type="text" value="6" /></div>
+ </div>
+ <div class="row">
+ <div class="label">
+ <label for="field.min_max"
+ title="zope.schema.Int field with min = 5 and max = 10">min_max</label>
+ </div>
+ <div class="field"><input class="textType" id="field.min_max" name="field.min_max" size="10" type="text" value="6" /></div>
+ </div...
+
+
+Check the editform::
+
+ >>> print http(r"""
+ ... GET /widgets/42/@@edit.html HTTP/1.1
+ ... Authorization: Basic mgr:mgrpw
+ ... Referer: http://localhost:8081/widgets/42/@@index.html
+ ... """)
+ HTTP/1.1 200 Ok
+ ...
+ <div class="row">
+ <div class="label">
+ <label for="field.standard"
+ title="zope.schema.Int field with only title and description.">standard</label>
+ </div>
+ <div class="field"><input class="textType" id="field.standard" name="field.standard" size="10" type="text" value="42" /></div>
+ </div>
+ <div class="row">
+ <div class="label">
+ <label for="field.required"
+ title="zope.schema.Int field with required = True.">required</label>
+ </div>
+ <div class="field"><input class="textType" id="field.required" name="field.required" size="10" type="text" value="42" /></div>
+ </div>
+ <div class="row">
+ <div class="label">
+ <label for="field.constraint"
+ title="zope.schema.Int field with constraint lambda x: x == 42.">constraint</label>
+ </div>
+ <div class="field"><input class="textType" id="field.constraint" name="field.constraint" size="10" type="text" value="42" /></div>
+ </div>
+ <div class="row">
+ <div class="label">
+ <label for="field.default"
+ title="zope.schema.Int field with default = u'default'.">default</label>
+ </div>
+ <div class="field"><input class="textType" id="field.default" name="field.default" size="10" type="text" value="42" /></div>
+ </div>
+ <div class="row">
+ <div class="label">
+ <label for="field.min"
+ title="zope.schema.Int field with min = 5.">min</label>
+ </div>
+ <div class="field"><input class="textType" id="field.min" name="field.min" size="10" type="text" value="6" /></div>
+ </div>
+ <div class="row">
+ <div class="label">
+ <label for="field.max"
+ title="zope.schema.Int field with max = 10">max</label>
+ </div>
+ <div class="field"><input class="textType" id="field.max" name="field.max" size="10" type="text" value="6" /></div>
+ </div>
+ <div class="row">
+ <div class="label">
+ <label for="field.min_max"
+ title="zope.schema.Int field with min = 5 and max = 10">min_max</label>
+ </div>
+ <div class="field"><input class="textType" id="field.min_max" name="field.min_max" size="10" type="text" value="6" /></div>
+ </div...
Property changes on: Zope3/trunk/src/zope/app/demo/widget/help/intwidget.txt
___________________________________________________________________
Name: svn:eol-style
+ native
Added: Zope3/trunk/src/zope/app/demo/widget/help/textareawidget.txt
===================================================================
--- Zope3/trunk/src/zope/app/demo/widget/help/textareawidget.txt 2005-03-19 17:23:01 UTC (rev 29573)
+++ Zope3/trunk/src/zope/app/demo/widget/help/textareawidget.txt 2005-03-19 18:03:23 UTC (rev 29574)
@@ -0,0 +1,292 @@
+=====================
+TextAreaWidget sample
+=====================
+
+Interface
+---------
+
+Add a interfaces with Text fields::
+
+class IReadDemoTextAreaWidget(Interface):
+ """Widget read interface."""
+
+ readonly = Text(
+ title = _(u"readonly"),
+ description=_(u"zope.schema.Text field with readonly = True."),
+ required=False,
+ readonly=True,
+ default=u'readonly')
+
+class IWriteDemoTextAreaWidget(Interface):
+ """Widget write interface."""
+
+ standard = Text(
+ title = _(u"standard"),
+ description=_(u"""zope.schema.Text field with only title and description."""),
+ )
+
+ required = Text(
+ title = _(u"required"),
+ description=_(u"zope.schema.Text field with required = True."),
+ required=True)
+
+ constraint = Text(
+ title = _(u"constraint"),
+ description=_(u"""zope.schema.Text field with """
+ """constraint = lambda x: x == u'constraint'."""),
+ constraint=lambda x: x == u'constraint')
+
+ default = Text(
+ title = _(u"default"),
+ description=_(u"""zope.schema.Text field with """
+ """default = u'default'."""),
+ default=u'default')
+
+ min_length = Text(
+ title = _(u"min_length"),
+ description=_(u"zope.schema.Text field with min_length = 5."),
+ min_length=5)
+
+ max_length = Text(
+ title = _(u"max_length"),
+ description=_(u"zope.schema.Text field with max_length = 10"),
+ max_length=10)
+
+ min_max = Text(
+ title = _(u"min_max"),
+ description=_(u"""zope.schema.Text field with min_lenght = 5 """
+ """and max_length = 10"""),
+ min_length=5,
+ max_length=10)
+
+
+class IDemoTextAreaWidget(IDemoWidget, IReadDemoTextAreaWidget,
+ IWriteDemoTextAreaWidget):
+ """Widget interface inherites read and write interfaces."""
+
+Define a class::
+
+class DemoTextAreaWidget(DemoWidget):
+ """Demo TextAreaWidget implementation."""
+
+ implements(IDemoTextAreaWidget)
+
+ standard = FieldProperty(IDemoTextAreaWidget['standard'])
+ required = FieldProperty(IDemoTextAreaWidget['required'])
+ readonly = FieldProperty(IDemoTextAreaWidget['readonly'])
+ constraint = FieldProperty(IDemoTextAreaWidget['constraint'])
+ default = FieldProperty(IDemoTextAreaWidget['default'])
+ min_length = FieldProperty(IDemoTextAreaWidget['min_length'])
+ max_length = FieldProperty(IDemoTextAreaWidget['max_length'])
+ min_max = FieldProperty(IDemoTextAreaWidget['min_max'])
+
+Register the class::
+
+ <content class=".textareawidget.DemoTextAreaWidget">
+
+ <require permission="zope.View"
+ interface=".interfaces.IDemoTextAreaWidget"
+ />
+
+ <require permission="zope.ManageContent"
+ set_schema=".interfaces.IDemoTextAreaWidget"
+ />
+
+ </content>
+
+Register a addform::
+
+ <addMenuItem
+ title="TextAreaWidget"
+ description="Add a Demo TextAreaWidget"
+ class="..textareawidget.DemoTextAreaWidget"
+ permission="zope.ManageContent"
+ view="addDemoTextAreaWidget.html"
+ />
+
+ <addform
+ name="addDemoTextAreaWidget.html"
+ label="Add a Demo TextWidget"
+ schema="..interfaces.IWriteDemoTextAreaWidget"
+ content_factory="..textareawidget.DemoTextAreaWidget"
+ permission="zope.ManageContent"
+ />
+
+Register a editform::
+
+ <editform
+ name="edit.html"
+ label="Edit"
+ for="..interfaces.IDemoTextAreaWidget"
+ schema="..interfaces.IWriteDemoTextAreaWidget"
+ menu="zmi_views" title="Edit"
+ permission="zope.ManageContent"
+ />
+
+Add a DemoWidgetContainer for test the widgets::
+
+ >>> print http(r"""
+ ... POST /@@contents.html HTTP/1.1
+ ... Authorization: Basic mgr:mgrpw
+ ... Content-Type: application/x-www-form-urlencoded
+ ...
+ ... type_name=BrowserAdd__zope.app.demo.widget.app.DemoWidgetContainer&new_value=widgets""")
+ HTTP/1.1 303 See Other
+ ...
+
+Add a TextWidget using the addform::
+
+ >>> print http(r"""
+ ... POST /widgets/+/addDemoTextAreaWidget.html%3D HTTP/1.1
+ ... Authorization: Basic mgr:mgrpw
+ ... Content-Type: multipart/form-data; boundary=---------------------------7d5ae0c0aea
+ ... Referer: http://localhost:8081/widgets/+/addDemoTextAreaWidget.html=
+ ...
+ ... -----------------------------7d5ae0c0aea
+ ... Content-Disposition: form-data; name="field.standard"
+ ...
+ ... textarea
+ ... -----------------------------7d5ae0c0aea
+ ... Content-Disposition: form-data; name="field.required"
+ ...
+ ... textarea
+ ... -----------------------------7d5ae0c0aea
+ ... Content-Disposition: form-data; name="field.constraint"
+ ...
+ ... constraint
+ ... -----------------------------7d5ae0c0aea
+ ... Content-Disposition: form-data; name="field.default"
+ ...
+ ... default
+ ... -----------------------------7d5ae0c0aea
+ ... Content-Disposition: form-data; name="field.min_length"
+ ...
+ ... abcdef
+ ... -----------------------------7d5ae0c0aea
+ ... Content-Disposition: form-data; name="field.max_length"
+ ...
+ ... abcdef
+ ... -----------------------------7d5ae0c0aea
+ ... Content-Disposition: form-data; name="field.min_max"
+ ...
+ ... abcdef
+ ... -----------------------------7d5ae0c0aea
+ ... Content-Disposition: form-data; name="UPDATE_SUBMIT"
+ ...
+ ... Add
+ ... -----------------------------7d5ae0c0aea
+ ... Content-Disposition: form-data; name="add_input_name"
+ ...
+ ... textarea
+ ... -----------------------------7d5ae0c0aea--
+ ... """)
+ HTTP/1.1 303 See Other
+ ...
+ <div class="row">
+ <div class="label">
+ <label for="field.standard"
+ title="zope.schema.Text field with only title and description.">standard</label>
+ </div>
+ <div class="field"><textarea cols="60" id="field.standard" name="field.standard" rows="15" >textarea</textarea></div>
+ </div>
+ <div class="row">
+ <div class="label">
+ <label for="field.required"
+ title="zope.schema.Text field with required = True.">required</label>
+ </div>
+ <div class="field"><textarea cols="60" id="field.required" name="field.required" rows="15" >textarea</textarea></div>
+ </div>
+ <div class="row">
+ <div class="label">
+ <label for="field.constraint"
+ title="zope.schema.Text field with constraint = lambda x: x == u'constraint'.">constraint</label>
+ </div>
+ <div class="field"><textarea cols="60" id="field.constraint" name="field.constraint" rows="15" >constraint</textarea></div>
+ </div>
+ <div class="row">
+ <div class="label">
+ <label for="field.default"
+ title="zope.schema.Text field with default = u'default'.">default</label>
+ </div>
+ <div class="field"><textarea cols="60" id="field.default" name="field.default" rows="15" >default</textarea></div>
+ </div>
+ <div class="row">
+ <div class="label">
+ <label for="field.min_length"
+ title="zope.schema.Text field with min_length = 5.">min_length</label>
+ </div>
+ <div class="field"><textarea cols="60" id="field.min_length" name="field.min_length" rows="15" >abcdef</textarea></div>
+ </div>
+ <div class="row">
+ <div class="label">
+ <label for="field.max_length"
+ title="zope.schema.Text field with max_length = 10">max_length</label>
+ </div>
+ <div class="field"><textarea cols="60" id="field.max_length" name="field.max_length" rows="15" >abcdef</textarea></div>
+ </div>
+ <div class="row">
+ <div class="label">
+ <label for="field.min_max"
+ title="zope.schema.Text field with min_lenght = 5 and max_length = 10">min_max</label>
+ </div>
+ <div class="field"><textarea cols="60" id="field.min_max" name="field.min_max" rows="15" >abcdef</textarea></div>
+ </div...
+
+Check the editform::
+
+ >>> print http(r"""
+ ... GET /widgets/textarea/@@edit.html HTTP/1.1
+ ... Authorization: Basic mgr:mgrpw
+ ... Referer: http://localhost:8081/widgets/textarea/@@index.html
+ ... """)
+ HTTP/1.1 200 Ok
+ ...
+ <div class="row">
+ <div class="label">
+ <label for="field.standard"
+ title="zope.schema.Text field with only title and description.">standard</label>
+ </div>
+ <div class="field"><textarea cols="60" id="field.standard" name="field.standard" rows="15" >textarea</textarea></div>
+ </div>
+ <div class="row">
+ <div class="label">
+ <label for="field.required"
+ title="zope.schema.Text field with required = True.">required</label>
+ </div>
+ <div class="field"><textarea cols="60" id="field.required" name="field.required" rows="15" >textarea</textarea></div>
+ </div>
+ <div class="row">
+ <div class="label">
+ <label for="field.constraint"
+ title="zope.schema.Text field with constraint = lambda x: x == u'constraint'.">constraint</label>
+ </div>
+ <div class="field"><textarea cols="60" id="field.constraint" name="field.constraint" rows="15" >constraint</textarea></div>
+ </div>
+ <div class="row">
+ <div class="label">
+ <label for="field.default"
+ title="zope.schema.Text field with default = u'default'.">default</label>
+ </div>
+ <div class="field"><textarea cols="60" id="field.default" name="field.default" rows="15" >default</textarea></div>
+ </div>
+ <div class="row">
+ <div class="label">
+ <label for="field.min_length"
+ title="zope.schema.Text field with min_length = 5.">min_length</label>
+ </div>
+ <div class="field"><textarea cols="60" id="field.min_length" name="field.min_length" rows="15" >abcdef</textarea></div>
+ </div>
+ <div class="row">
+ <div class="label">
+ <label for="field.max_length"
+ title="zope.schema.Text field with max_length = 10">max_length</label>
+ </div>
+ <div class="field"><textarea cols="60" id="field.max_length" name="field.max_length" rows="15" >abcdef</textarea></div>
+ </div>
+ <div class="row">
+ <div class="label">
+ <label for="field.min_max"
+ title="zope.schema.Text field with min_lenght = 5 and max_length = 10">min_max</label>
+ </div>
+ <div class="field"><textarea cols="60" id="field.min_max" name="field.min_max" rows="15" >abcdef</textarea></div>
+ </div...
\ No newline at end of file
Property changes on: Zope3/trunk/src/zope/app/demo/widget/help/textareawidget.txt
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: Zope3/trunk/src/zope/app/demo/widget/help/textwidget.txt
===================================================================
--- Zope3/trunk/src/zope/app/demo/widget/help/textwidget.txt 2005-03-19 17:23:01 UTC (rev 29573)
+++ Zope3/trunk/src/zope/app/demo/widget/help/textwidget.txt 2005-03-19 18:03:23 UTC (rev 29574)
@@ -5,50 +5,65 @@
Interface
---------
-Add a interface with TextLine fields::
+Add a interfaces with TextLine fields::
- class IWriteDemoTextWidget(Interface):
- """TextWidget demo write interface."""
-
- standard = TextLine(
- title = _(u"standard"),
- description=_(u"""zope.schema.TextLine field with only title and description."""),
- )
-
- required = TextLine(
- title = _(u"required"),
- description=_(u"zope.schema.TextLine field with required = True."),
- required=True)
-
- constraint = TextLine(
- title = _(u"constraint"),
- description=_(u"""zope.schema.TextLine field with """
- """constraint = lambda x: x == u'constraint'."""),
- constraint=lambda x: x == u'constraint')
-
- default = TextLine(
- title = _(u"default"),
- description=_(u"""zope.schema.TextLine field with """
- """default = u'default'."""),
- default=u'default')
-
- min_length = TextLine(
- title = _(u"min_length"),
- description=_(u"zope.schema.TextLine field with min_length = 5."),
- min_length=5)
-
- max_length = TextLine(
- title = _(u"max_length"),
- description=_(u"zope.schema.TextLine field with max_length = 10"),
- max_length=10)
-
- min_max = TextLine(
- title = _(u"min_max"),
- description=_(u"""zope.schema.TextLine field with min_lenght = 5 """
- """and max_length = 10"""),
- min_length=5,
- max_length=10)
+class IReadDemoTextWidget(Interface):
+ """Widget read interface."""
+ readonly = TextLine(
+ title = _(u"readonly"),
+ description=_(u"zope.schema.TextLine field with readonly = True."),
+ required=False,
+ readonly=True,
+ default=u'readonly')
+
+
+class IWriteDemoTextWidget(Interface):
+ """Widget write interface."""
+
+ standard = TextLine(
+ title = _(u"standard"),
+ description=_(u"""zope.schema.TextLine field with only title and description."""),
+ )
+
+ required = TextLine(
+ title = _(u"required"),
+ description=_(u"zope.schema.TextLine field with required = True."),
+ required=True)
+
+ constraint = TextLine(
+ title = _(u"constraint"),
+ description=_(u"""zope.schema.TextLine field with """
+ """constraint = lambda x: x == u'constraint'."""),
+ constraint=lambda x: x == u'constraint')
+
+ default = TextLine(
+ title = _(u"default"),
+ description=_(u"""zope.schema.TextLine field with """
+ """default = u'default'."""),
+ default=u'default')
+
+ min_length = TextLine(
+ title = _(u"min_length"),
+ description=_(u"zope.schema.TextLine field with min_length = 5."),
+ min_length=5)
+
+ max_length = TextLine(
+ title = _(u"max_length"),
+ description=_(u"zope.schema.TextLine field with max_length = 10"),
+ max_length=10)
+
+ min_max = TextLine(
+ title = _(u"min_max"),
+ description=_(u"""zope.schema.TextLine field with min_lenght = 5 """
+ """and max_length = 10"""),
+ min_length=5,
+ max_length=10)
+
+
+class IDemoTextWidget(IDemoWidget, IReadDemoTextWidget, IWriteDemoTextWidget):
+ """Widget interface inherites read and write interfaces."""
+
Define a class::
class DemoTextWidget(DemoWidget):
Modified: Zope3/trunk/src/zope/app/demo/widget/interfaces/__init__.py
===================================================================
--- Zope3/trunk/src/zope/app/demo/widget/interfaces/__init__.py 2005-03-19 17:23:01 UTC (rev 29573)
+++ Zope3/trunk/src/zope/app/demo/widget/interfaces/__init__.py 2005-03-19 18:03:23 UTC (rev 29574)
@@ -49,6 +49,10 @@
constraint = ContainerTypesConstraint(IDemoWidgetContainer))
+from zope.app.demo.widget.interfaces.boolwidget import IReadDemoBoolWidget
+from zope.app.demo.widget.interfaces.boolwidget import IWriteDemoBoolWidget
+from zope.app.demo.widget.interfaces.boolwidget import IDemoBoolWidget
+
from zope.app.demo.widget.interfaces.intwidget import IReadDemoIntWidget
from zope.app.demo.widget.interfaces.intwidget import IWriteDemoIntWidget
from zope.app.demo.widget.interfaces.intwidget import IDemoIntWidget
Added: Zope3/trunk/src/zope/app/demo/widget/interfaces/boolwidget.py
===================================================================
--- Zope3/trunk/src/zope/app/demo/widget/interfaces/boolwidget.py 2005-03-19 17:23:01 UTC (rev 29573)
+++ Zope3/trunk/src/zope/app/demo/widget/interfaces/boolwidget.py 2005-03-19 18:03:23 UTC (rev 29574)
@@ -0,0 +1,65 @@
+##############################################################################
+#
+# Copyright (c) 2005 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""Demo widget implementation
+
+$Id: intwidget.py 29419 2005-03-09 01:45:19Z rogerineichen $
+"""
+__docformat__ = 'restructuredtext'
+
+from zope.interface import Interface
+from zope.schema import Bool
+
+from zope.app.i18n import ZopeMessageIDFactory as _
+from zope.app.demo.widget.interfaces import IDemoWidget
+
+
+class IReadDemoBoolWidget(Interface):
+ """Widget read interface."""
+
+ readonly = Bool(
+ title = _(u"readonly"),
+ description=_(u"zope.schema.Int field with readonly = True."),
+ required=False,
+ readonly=True,
+ default=42)
+
+
+class IWriteDemoBoolWidget(Interface):
+ """Widget write interface."""
+
+ standard = Bool(
+ title = _(u"standard"),
+ description=_(u"""zope.schema.Bool field with only title and description."""),
+ )
+
+ required = Bool(
+ title = _(u"required"),
+ description=_(u"zope.schema.Bool field with required = True."),
+ required=True)
+
+ constraint = Bool(
+ title = _(u"constraint"),
+ description=_(u"""zope.schema.Bool field with constraint """
+ """lambda x: x == True."""),
+ constraint=lambda x: x == True)
+
+ default = Bool(
+ title = _(u"default"),
+ description=_(u"""zope.schema.Bool field with """
+ """default = True."""),
+ default=True)
+
+
+class IDemoBoolWidget(IDemoWidget, IReadDemoBoolWidget, IWriteDemoBoolWidget):
+ """Widget interface inherites read and write interfaces."""
Property changes on: Zope3/trunk/src/zope/app/demo/widget/interfaces/boolwidget.py
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: Zope3/trunk/src/zope/app/demo/widget/tests.py
===================================================================
--- Zope3/trunk/src/zope/app/demo/widget/tests.py 2005-03-19 17:23:01 UTC (rev 29573)
+++ Zope3/trunk/src/zope/app/demo/widget/tests.py 2005-03-19 18:03:23 UTC (rev 29574)
@@ -23,6 +23,7 @@
def test_suite():
return unittest.TestSuite((
+ DocTestSuite('zope.app.demo.widget.boolwidget'),
DocTestSuite('zope.app.demo.widget.intwidget'),
DocTestSuite('zope.app.demo.widget.textwidget'),
DocTestSuite('zope.app.demo.widget.textareawidget'),
Modified: Zope3/trunk/src/zope/app/demo/widget/textareawidget.zcml
===================================================================
--- Zope3/trunk/src/zope/app/demo/widget/textareawidget.zcml 2005-03-19 17:23:01 UTC (rev 29573)
+++ Zope3/trunk/src/zope/app/demo/widget/textareawidget.zcml 2005-03-19 18:03:23 UTC (rev 29574)
@@ -4,8 +4,6 @@
<content class=".textareawidget.DemoTextAreaWidget">
- <factory />
-
<require permission="zope.View"
interface=".interfaces.IDemoTextAreaWidget"
/>
More information about the Zope3-Checkins
mailing list