[Zope-Checkins] CVS: Zope3/lib/python/Zope/App/Forms/Views/Browser - FormView.py:1.6 Widget.py:1.4

Stephan Richter srichter@cbu.edu
Tue, 16 Jul 2002 22:36:38 -0400


Update of /cvs-repository/Zope3/lib/python/Zope/App/Forms/Views/Browser
In directory cvs.zope.org:/tmp/cvs-serv489/lib/python/Zope/App/Forms/Views/Browser

Modified Files:
	FormView.py Widget.py 
Log Message:
I finished the tests for the FormView now. Next I will make the 
SchemaTestObject work in Zope runtime and tehn I will try to work on a
simple Layouter before fixing teh Bug Collector for an initial checkin.


=== Zope3/lib/python/Zope/App/Forms/Views/Browser/FormView.py 1.5 => 1.6 ===
 """
 from Interface.Implements import flattenInterfaces
 from Schema.IField import IField
+from Schema.Exceptions import StopValidation, ValidationError, \
+     ConversionError, ValidationErrorsAll, ConversionErrorsAll
 
 from Zope.ComponentArchitecture import getView
 from Zope.Publisher.Browser.BrowserView import BrowserView
@@ -79,12 +81,11 @@
 
     def getAllRawFieldData(self):
         """Returns field data retrieved from request."""
-        interfaces = _flatten(self.context.__implements__)
         request = self.request
         data = {}
         for field in self.getFields():
-            raw_data = request.form.get('field_' + attr.get('id'))
-            data[attr] = raw_data
+            raw_data = request.form.get('field_' + field.id)
+            data[field] = raw_data
         return data
 
 
@@ -97,7 +98,7 @@
             try:
                 data[field] = widget.convert(mapping[field])
             except ConversionError, error:
-                errors.append((field.get('id'), error))
+                errors.append((field.id, error))
 
         if errors:
             raise ConversionErrorsAll, errors
@@ -112,7 +113,7 @@
             try:
                 field.validate(mapping[field])
             except ValidationError, error:
-                errors.append((field.get('id'), error))
+                errors.append((field.id, error))
 
         if errors:
             raise ValidationErrorsAll, errors
@@ -122,8 +123,8 @@
         """Store the data back into the context object."""
         for field in mapping:
             value = mapping[field]
-            if value != getattr(self, field.get('id')):
-                setattr(self, field.get('id'))
+            if value != getattr(self.context, field.id):
+                setattr(self.context, field.id, value)
 
 
     def saveValuesInContext(self):


=== Zope3/lib/python/Zope/App/Forms/Views/Browser/Widget.py 1.3 => 1.4 ===
 """
 from types import ListType, TupleType
 ListTypes = (ListType, TupleType)
+from Schema import Converter
 from Zope.ComponentArchitecture import getAdapter
 from Zope.Publisher.Browser.BrowserView import BrowserView
 from Zope.App.Forms.Views.Browser.IBrowserWidget import IBrowserWidget
@@ -26,7 +27,7 @@
     """A field widget that knows how to display itself as HTML."""
 
     __implements__ = IBrowserWidget
-    converter = None
+    converter = Converter.NullConverter()
 
     propertyNames = Widget.propertyNames + \
                     ['tag', 'type', 'cssClass', 'hidden', 'extra']
@@ -36,6 +37,10 @@
     cssClass = ''
     hidden = 0
     extra = ''
+
+
+    def convert(self, value):
+        return self.converter.convert(value)
 
     def render(self, value):
         'See Zope.App.Forms.Views.Browser.IBrowserWidget.IBrowserWidget'