always send at least an emtpy <value> for every required fields when we send a dataform. Fixes #5829
This commit is contained in:
parent
f1e6e9245e
commit
04c7b20c77
|
@ -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
|
||||||
|
|
|
@ -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') \
|
||||||
|
|
Loading…
Reference in New Issue