always send at least an emtpy <value> for every required fields when we send a dataform. Fixes #5829

This commit is contained in:
Yann Leboulanger 2010-08-10 18:25:45 +02:00
parent f1e6e9245e
commit 04c7b20c77
2 changed files with 7 additions and 2 deletions

View File

@ -616,7 +616,7 @@ class CommandWindow:
cmdnode.setAttr('sessionid', self.sessionid) cmdnode.setAttr('sessionid', self.sessionid)
if self.data_form_widget.data_form: if self.data_form_widget.data_form:
cmdnode.addChild(node=self.data_form_widget.data_form) cmdnode.addChild(node=self.data_form_widget.data_form.get_purged())
def callback(response): def callback(response):
# FIXME: move to connection_handlers.py # FIXME: move to connection_handlers.py

View File

@ -352,7 +352,7 @@ class StringField(DataField):
def fset(self, value): def fset(self, value):
assert isinstance(value, basestring) assert isinstance(value, basestring)
if value == '': if value == '' and not self.required:
return fdel(self) return fdel(self)
self.setTagData('value', value) self.setTagData('value', value)
@ -662,6 +662,11 @@ class SimpleDataForm(DataForm, DataRecord):
to_be_removed = [] to_be_removed = []
for f in c.iter_fields(): for f in c.iter_fields():
if f.required: if f.required:
# add <value> if there is not
if hasattr(f, 'value') and not f.value:
f.value = ''
if hasattr(f, 'values') and not f.values:
f.values = ['']
# Keep all required fields # Keep all required fields
continue continue
if (hasattr(f, 'value') and not f.value) or (hasattr(f, 'values') \ if (hasattr(f, 'value') and not f.value) or (hasattr(f, 'values') \