make sure checkbox widget do not get confused with misc values

This commit is contained in:
Frédéric Péters 2013-07-23 12:25:41 +02:00
parent 2b05ea63e7
commit 45915c0ebf
2 changed files with 8 additions and 2 deletions

View File

@ -553,7 +553,7 @@ class BoolField(WidgetField):
kwargs['disabled'] = 'disabled'
value = get_request().get_field(self.field_key)
form.add_hidden(self.field_key, value=str(value))
if value:
if value and not value == 'False':
self.field_key = 'f%sdisabled' % self.id
get_request().form[self.field_key] = 'yes'
self.field_key = 'f%sdisabled' % self.id

View File

@ -361,10 +361,16 @@ class CheckboxWidget(quixote.form.CheckboxWidget):
required attribute, if required the checkbox will have to be checked.
'''
def _parse(self, request):
quixote.form.CheckboxWidget._parse(self, request=request)
self.value = self.name in request.form and not request.form[self.name] in (False, '', 'False')
if self.required and not self.value:
self.set_error(self.REQUIRED_ERROR)
def set_value(self, value):
if value in (None, False, '', 'False'):
self.value = False
else:
self.value = True
class UploadedFile:
def __init__(self, directory, filename, upload):
self.directory = directory