':return: Fills all the empty parameters (which should be filled)
using the smart_fill function.'

def smart_fill(self):

    file_variables = self.get_file_vars()
    for (var_name, value, path, setter) in self.iter_setters():
        if (self.get_parameter_type(var_name) in self.AVOID_FILLING_FORM_TYPES):
            continue
        if isinstance(value, DataToken):
            continue
        if (var_name in file_variables):
            file_name = self.get_file_name(var_name, None)
            setter(smart_fill_file(var_name, file_name))
        elif (value == ''):
            setter(smart_fill(var_name))
