diff -r f8326ff98f37 -r 21ed77792c33 web/formwidgets.py --- a/web/formwidgets.py Tue Feb 23 12:46:56 2010 +0100 +++ b/web/formwidgets.py Tue Feb 23 12:49:37 2010 +0100 @@ -59,21 +59,6 @@ def _render(self, form, field, renderer): raise NotImplementedError() - def typed_value(self, form, field): - """return field's *typed* value specified in: - 3. extra form values given to render() - 4. field's typed value - """ - qname = field.input_name(form) - for key in (field, qname): - try: - return form.formvalues[key] - except KeyError: - continue - if field.name != qname and field.name in form.formvalues: - return form.formvalues[field.name] - return field.typed_value(form) - def format_value(self, form, field, value): return field.format_value(form._cw, value) @@ -118,6 +103,21 @@ values = (values,) return values + def typed_value(self, form, field): + """return field's *typed* value specified in: + 3. extra form values given to render() + 4. field's typed value + """ + qname = field.input_name(form) + for key in ((field, form), qname): + try: + return form.formvalues[key] + except KeyError: + continue + if field.name != qname and field.name in form.formvalues: + return form.formvalues[field.name] + return field.typed_value(form) + def process_field_data(self, form, field): posted = form._cw.form val = posted.get(field.input_name(form, self.suffix))