[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