diff -r d2663bcf5306 -r b2747ed057e6 web/formwidgets.py
--- a/web/formwidgets.py Mon Dec 21 20:04:33 2009 +0100
+++ b/web/formwidgets.py Mon Dec 21 20:18:53 2009 +0100
@@ -51,11 +51,8 @@
"""
raise NotImplementedError
- def _render_attrs(self, form, field):
- """return html tag name, attributes and a list of values for the field
- """
- name = form.context[field]['name']
- values = form.context[field]['value']
+ def values_and_attributes(self, form, field):
+ values = field.display_value(form)
if not isinstance(values, (tuple, list)):
values = (values,)
attrs = dict(self.attrs)
@@ -63,12 +60,20 @@
attrs['id'] = field.dom_id(form)
if self.settabindex and not 'tabindex' in attrs:
attrs['tabindex'] = form._cw.next_tabindex()
- return name, values, attrs
+ return values, attrs
def process_field_data(self, form, field):
- formkey = form.form_field_name(field)
posted = form._cw.form
- return posted.get(formkey)
+ val = posted.get(field.input_name(form))
+ return val
+
+ @deprecated('[3.6] use values_and_attributes')
+ def _render_attrs(self, form, field):
+ """return html tag name, attributes and a list of values for the field
+ """
+ values, attrs = self.values_and_attributes(form, field)
+ return field.input_name(form), values, attrs
+
class Input(FieldWidget):
"""abstract widget class for tag based widgets"""
@@ -80,7 +85,7 @@
Generate one tag for each field's value
"""
self.add_media(form)
- name, values, attrs = self._render_attrs(form, field)
+ values, attrs = self.values_and_attributes(form, field)
# ensure something is rendered
if not values:
values = (INTERNAL_FIELD_VALUE,)
@@ -105,7 +110,7 @@
def render(self, form, field, renderer):
self.add_media(form)
- name, values, attrs = self._render_attrs(form, field)
+ values, attrs = self.values_and_attributes(form, field)
assert len(values) == 1
id = attrs.pop('id')
inputs = [tags.input(name=field.input_name(form),
@@ -142,10 +147,10 @@
""""""
type = 'file'
- def _render_attrs(self, form, field):
+ def values_and_attributes(self, form, field):
# ignore value which makes no sense here (XXX even on form validation error?)
- name, values, attrs = super(FileInput, self)._render_attrs(form, field)
- return name, ('',), attrs
+ values, attrs = super(FileInput, self).values_and_attributes(form, field)
+ return ('',), attrs
class HiddenInput(Input):
@@ -168,7 +173,7 @@
"""