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 @@ """