X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=apps%2Fpatchwork%2Fforms.py;h=1ff2bd0088c765711a26c176f652337409bc4d56;hb=56e2243f3be7e859666ce0e4e1a8b8b94444f8d4;hp=4c811f547c439dd924db58bb5c8a496b497e78e5;hpb=bf0aef79a1e5b1d0b78c10df4a610b0a7b2d365f;p=patchwork diff --git a/apps/patchwork/forms.py b/apps/patchwork/forms.py index 4c811f5..1ff2bd0 100644 --- a/apps/patchwork/forms.py +++ b/apps/patchwork/forms.py @@ -176,7 +176,26 @@ class MultipleBooleanField(forms.ChoiceField): def is_no_change(self, value): return value == self.no_change_choice[0] + # TODO: Check whether it'd be worth to use a TypedChoiceField here; I + # think that'd allow us to get rid of the custom valid_value() and + # to_python() methods. + def valid_value(self, value): + if value in [v1 for (v1, v2) in self.choices]: + return True + return False + + def to_python(self, value): + if value is None or self.is_no_change(value): + return self.no_change_choice[0] + elif value == 'True': + return True + elif value == 'False': + return False + else: + raise ValueError('Unknown value: %s' % value) + class MultiplePatchForm(forms.Form): + action = 'update' state = OptionalModelChoiceField(queryset = State.objects.all()) archived = MultipleBooleanField()