[Zope-Checkins] CVS: Zope3/lib/python/Zope/App/Forms/Views/Browser - configure.zcml:1.1 testFormView.pt:1.1 FormView.py:1.2
Martijn Faassen
m.faassen@vet.uu.nl
Tue, 25 Jun 2002 11:30:32 -0400
Update of /cvs-repository/Zope3/lib/python/Zope/App/Forms/Views/Browser
In directory cvs.zope.org:/tmp/cvs-serv2702/Views/Browser
Modified Files:
FormView.py
Added Files:
configure.zcml testFormView.pt
Log Message:
Add configure.zcml to Forms (real work done in Browser as this is
all about Views). Adds a few test widgets as views, which can hook
up to Schema fields (see lib/python/Schema). Also added a test view
for Forms that displays a basic form made from the widgets.
=== Added File Zope3/lib/python/Zope/App/Forms/Views/Browser/configure.zcml ===
<zopeConfigure
xmlns='http://namespaces.zope.org/zope'
xmlns:browser='http://namespaces.zope.org/browser'
package="Zope.App.Forms.Views.Browser"
>
<!-- Form Widget View Directives -->
<browser:view
permission="Zope.View"
for="Schema.IField.IStr"
name="normal"
factory=".TextWidget." />
<browser:view
permission="Zope.View"
for="Schema.IField.IBool"
name="normal"
factory=".CheckboxWidget." />
<!-- Test view for folders -->
<browser:view
permission="Zope.View"
for="Zope.App.OFS.Content.Folder.Folder.IFolder."
factory=".FormView.">
<browser:page name="testFormView.html"
template="testFormView.pt" />
</browser:view>
</zopeConfigure>
=== Added File Zope3/lib/python/Zope/App/Forms/Views/Browser/testFormView.pt ===
<html>
<body>
<form>
<fields tal:omit-tag="" tal:repeat="field view/getFields">
<field tal:replace="structure field/render" /><br />
</fields>
</form>
</body>
</html>
=== Zope3/lib/python/Zope/App/Forms/Views/Browser/FormView.py 1.1 => 1.2 ===
from Schema.IField import IField
from Zope.ComponentArchitecture import getView
+import Schema
+from Schema import _Schema # XXX wire up, should really fix this :)
+class ITestSchema(Interface):
+ alpha = Schema.Str(title="Alpha")
+ beta = Schema.Bool(title="Beta")
+
class FormView(BrowserView):
def getWidgetsForSchema(self, schema, view_name):
"""Given a schema and a desired field name, get a list of
@@ -15,5 +21,11 @@
widget = getView(attr, view_name, self.request)
result.append(widget)
return result
-
+
+ def getFields(self):
+ """XXX just a test method.
+ """
+ result = self.getWidgetsForSchema(ITestSchema, 'normal')
+ print result
+ return result