Add domain inversion for reference fields

issue7877
review45831002
This commit is contained in:
Sergi Almacellas Abellana
2019-04-14 14:17:39 +02:00
parent c1dd32af8c
commit 247a32f74c
3 changed files with 20 additions and 6 deletions
+1
View File
@@ -1,3 +1,4 @@
* Add domain inversion for reference fields
* Add list-form view
* Support HTML widget
* Use locale format for data export
+15 -6
View File
@@ -2339,13 +2339,22 @@
},
unique_value: function(domain) {
if ((domain instanceof Array) &&
(domain.length == 1) &&
!domain[0][0].contains('.') &&
(domain[0][1] == '=')) {
return [true, domain[0][1], domain[0][2]];
} else {
return [false, null, null];
(domain.length == 1)) {
domain = domain[0];
var name = domain[0];
var value = domain[2];
var count = 0;
if (domain.length == 4 && name.endsWith('.id')) {
count = 1;
var model = domain[3];
value = [model, value];
}
if ((name.split('.').length - 1) == count &&
(domain[1] == '=')) {
return [true, domain[1], value];
}
}
return [false, null, null];
},
parse: function(domain) {
var And = Sao.common.DomainInversion.And;
+4
View File
@@ -2201,6 +2201,10 @@
QUnit.ok(!unique_value(domain)[0]);
domain = [['a.b', '=', 1]];
QUnit.ok(!unique_value(domain)[0]);
domain = [['a.id', '=', 1, 'model']];
QUnit.ok(compare(unique_value(domain), [true, '=', ['model', 1]]));
domain = [['a.b.id', '=', 1, 'model']];
QUnit.ok(compare(unique_value(domain), [false, null, null]));
});
QUnit.test('DomainInversion evaldomain', function() {