Mercurial > genshi > mirror
changeset 471:76a0ec32835d trunk
The `HTMLFormFiller` stream filter no longer alters form elements for which the data element contains no corresponding item.
author | cmlenz |
---|---|
date | Thu, 03 May 2007 10:24:14 +0000 |
parents | 2d3246f9ea54 |
children | 4ed941aa0cbf |
files | ChangeLog genshi/filters/html.py |
diffstat | 2 files changed, 14 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -17,6 +17,8 @@ function with multiple string arguments (such as ``ngettext``), a single item with a tuple of strings is yielded, instead an item for each string argument. + * The `HTMLFormFiller` stream filter no longer alters form elements for which + the data element contains no corresponding item. Version 0.4
--- a/genshi/filters/html.py +++ b/genshi/filters/html.py @@ -88,8 +88,8 @@ type = attrs.get('type') if type in ('checkbox', 'radio'): name = attrs.get('name') - if name: - value = self.data.get(name) + if name and name in self.data: + value = self.data[name] declval = attrs.get('value') checked = False if isinstance(value, (list, tuple)): @@ -109,22 +109,24 @@ attrs -= 'checked' elif type in (None, 'hidden', 'text'): name = attrs.get('name') - if name: - value = self.data.get(name) + if name and name in self.data: + value = self.data[name] if isinstance(value, (list, tuple)): value = value[0] if value is not None: attrs |= [(QName('value'), unicode(value))] elif tagname == 'select': name = attrs.get('name') - select_value = self.data.get(name) - in_select = True + if name in self.data: + select_value = self.data[name] + in_select = True elif tagname == 'textarea': name = attrs.get('name') - textarea_value = self.data.get(name) - if isinstance(textarea_value, (list, tuple)): - textarea_value = textarea_value[0] - in_textarea = True + if name in self.data: + textarea_value = self.data.get(name) + if isinstance(textarea_value, (list, tuple)): + textarea_value = textarea_value[0] + in_textarea = True elif in_select and tagname == 'option': option_start = kind, data, pos option_value = attrs.get('value') @@ -132,7 +134,6 @@ continue yield kind, (tag, attrs), pos - elif in_form and kind is TEXT: if in_select and in_option: if option_value is None: