[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'