Improve completion on boolean

- Do not convert None to False
- Complete with the opposite or both values

issue8620
review254181002
This commit is contained in:
Cédric Krier committed 2019-09-16 23:59:43 +02:00
1 parent 5cef8269df
commit e9f6976eae
2 files changed
+38 -7

No files matched your search

+12 -5
View File
@@ -1386,7 +1386,13 @@
},
complete_value: function(field, value) {
var complete_boolean = function() {
return value ? [true] : [false];
if ((value === null) || (value === undefined)) {
return [true, false];
} else if (value) {
return [false];
} else {
return [true];
}
};
var complete_selection = function() {
@@ -1848,9 +1854,8 @@
return test.toLowerCase().startsWith(
value.toLowerCase());
});
} else {
return Boolean(value);
}
return null;
},
'float': function() {
var factor = Number(field.factor || 1);
@@ -1966,10 +1971,12 @@
var converts = {
'boolean': function() {
if (value) {
if (value === false) {
return Sao.i18n.gettext('False');
} else if (value) {
return Sao.i18n.gettext('True');
} else {
return Sao.i18n.gettext('False');
return '';
}
},
'integer': function() {
+26 -2
View File
@@ -1308,7 +1308,7 @@
['False', false],
['no', false],
['0', false],
[null, false]
[null, null],
].forEach(test_func, field);
field = {
@@ -1553,7 +1553,7 @@
[
[true, 'True'],
[false, 'False'],
[null, 'False']
[null, '']
].forEach(test_func, field);
field = {
@@ -1812,6 +1812,15 @@
', ' + JSON.stringify(value) + ')');
};
field = {
'type': 'boolean',
};
[
[null, [true, false]],
[true, [false]],
[false, [true]],
].forEach(test_func, field);
field = {
'type': 'selection',
'selection': [
@@ -2536,6 +2545,21 @@
});
QUnit.ok(compare(parser.completion('Relatio'),
["Relation: ", "Relation.Name: "]));
parser = new Sao.common.DomainParser({
'name': {
'string': "Active",
'name': 'active',
'type': 'boolean',
},
});
QUnit.ok(compare(parser.completion("Act"), ["Active: "]));
QUnit.ok(compare(parser.completion("Active:"),
["Active: ", "Active: True", "Active: False"]));
QUnit.ok(compare(parser.completion("Active: t"),
["Active: True", "Active: False"]));
QUnit.ok(compare(parser.completion("Active: f"),
["Active: False", "Active: True"]));
});
/*