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
					
				
					 2 changed files with 7 additions and 2 deletions
				
			
		| 
						 | 
					@ -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…
	
	Add table
		
		Reference in a new issue