let field instance retrieve context attribute (fi.getRawValue())
git-svn-id: svn://svn.cy55.de/Zope3/src/cybertools/trunk@2723 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
parent
e76f640529
commit
a9058f441e
3 changed files with 18 additions and 6 deletions
|
@ -144,6 +144,9 @@ class FieldInstance(object):
|
||||||
return method()
|
return method()
|
||||||
return self.context.defaultValue
|
return self.context.defaultValue
|
||||||
|
|
||||||
|
def getRawValue(self, data, key, default=None):
|
||||||
|
return data.get(key, default)
|
||||||
|
|
||||||
def marshall(self, value):
|
def marshall(self, value):
|
||||||
return value or u''
|
return value or u''
|
||||||
#return toStr(value)
|
#return toStr(value)
|
||||||
|
|
|
@ -85,7 +85,9 @@ class Editor(BaseInstance):
|
||||||
name = f.name
|
name = f.name
|
||||||
ftype = f.fieldType
|
ftype = f.fieldType
|
||||||
fi = formState.fieldInstances[name]
|
fi = formState.fieldInstances[name]
|
||||||
value = fi.unmarshall(data.get(name, u''))
|
#rawValue = data.get(name, u'')
|
||||||
|
rawValue = fi.getRawValue(data, name, u'')
|
||||||
|
value = fi.unmarshall(rawValue)
|
||||||
if ftype in fieldHandlers: # caller wants special treatment of field
|
if ftype in fieldHandlers: # caller wants special treatment of field
|
||||||
fieldHandlers[ftype](context, value, fi, formState)
|
fieldHandlers[ftype](context, value, fi, formState)
|
||||||
else:
|
else:
|
||||||
|
@ -104,7 +106,8 @@ class Editor(BaseInstance):
|
||||||
if f.readonly:
|
if f.readonly:
|
||||||
continue
|
continue
|
||||||
fi = f.getFieldInstance(self)
|
fi = f.getFieldInstance(self)
|
||||||
value = data.get(f.name)
|
#value = data.get(f.name)
|
||||||
|
value = fi.getRawValue(data, f.name)
|
||||||
fi.validate(value, data)
|
fi.validate(value, data)
|
||||||
formState.fieldInstances.append(fi)
|
formState.fieldInstances.append(fi)
|
||||||
formState.severity = max(formState.severity, fi.severity)
|
formState.severity = max(formState.severity, fi.severity)
|
||||||
|
|
|
@ -204,19 +204,25 @@ class IFieldInstance(Interface):
|
||||||
severity = Attribute("An integer giving a state or error "
|
severity = Attribute("An integer giving a state or error "
|
||||||
"code, 0 meaning 'OK'.")
|
"code, 0 meaning 'OK'.")
|
||||||
|
|
||||||
|
def getRawValue(data, key, default=None):
|
||||||
|
""" Extract a raw value for the field from the data given
|
||||||
|
using the key; if no corresponding value is found return
|
||||||
|
the default.
|
||||||
|
"""
|
||||||
|
|
||||||
def marshall(value):
|
def marshall(value):
|
||||||
""" Return a string (possibly unicode) representation of the
|
""" Return a string (possibly unicode) representation of the
|
||||||
value given that may be used for editing.
|
value given that may be used for editing.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def display(value):
|
def display(value):
|
||||||
""" Return a string (possibly unicode) representation of the
|
""" Return a string- (possibly unicode-) based representation of the
|
||||||
value given that may be used for presentation.
|
value given that may be used for presentation.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def unmarshall(strValue):
|
def unmarshall(rawValue):
|
||||||
""" Return the internal (real) value corresponding to the string
|
""" Return the internal (real) value corresponding to the
|
||||||
value given.
|
raw value given.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def validate(value, data=None):
|
def validate(value, data=None):
|
||||||
|
|
Loading…
Add table
Reference in a new issue