diff options
| author | Yannick Chabbert <yannick.chabbert@makina-corpus.com> | 2015-05-29 16:43:44 +0200 |
|---|---|---|
| committer | Yannick Chabbert <yannick.chabbert@makina-corpus.com> | 2015-05-29 16:43:44 +0200 |
| commit | 75489af8324dc4c33d1c6a3dde8ce29a9a034e08 (patch) | |
| tree | e54f6ab6479a6d271e8dfb1b79d7d0cb76689230 /webtest/forms.py | |
| parent | c1ac9d3c8c7b6297b9bba8644984ebfccdf1cb06 (diff) | |
| download | webtest-75489af8324dc4c33d1c6a3dde8ce29a9a034e08.tar.gz | |
reset values of select multiple
Diffstat (limited to 'webtest/forms.py')
| -rw-r--r-- | webtest/forms.py | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/webtest/forms.py b/webtest/forms.py index d444229..e64c6f7 100644 --- a/webtest/forms.py +++ b/webtest/forms.py @@ -167,7 +167,7 @@ class MultipleSelect(Field): self.options = [] # Undetermined yet: self.selectedIndices = [] - self._forced_values = [] + self._forced_values = NoValue def force_value(self, values): """Like setting a value, except forces it (even for, say, hidden @@ -215,21 +215,16 @@ class MultipleSelect(Field): ', '.join([repr(o) for o, c, t in self.options]))) def value__get(self): - selected_values = [] - if self.selectedIndices: - selected_values = [self.options[i][0] - for i in self.selectedIndices] - elif not self._forced_values: + if self._forced_values is not NoValue: + return self._forced_values + elif self.selectedIndices: + return [self.options[i][0] for i in self.selectedIndices] + else: selected_values = [] for option, checked, text in self.options: if checked: selected_values.append(option) - if self._forced_values: - selected_values += self._forced_values - - if self.options and (not selected_values): - selected_values = None - return selected_values + return selected_values if selected_values else None value = property(value__get, value__set) |
