[FIX] web: Ordering of inline tree views (#19856)
Allow to order from several columns in inline tree views (x2many fields in form views).
This commit is contained in:
@@ -3666,10 +3666,16 @@ var BasicModel = AbstractModel.extend({
|
||||
var self = this;
|
||||
|
||||
// sort records according to ordered_by[0]
|
||||
var order = list.orderedBy[0];
|
||||
var data = list.data;
|
||||
var res_ids = list.res_ids;
|
||||
data.sort(function (record1ID, record2ID) {
|
||||
var compareRecords = function (record1ID, record2ID, level) {
|
||||
if(!level) {
|
||||
level = 0;
|
||||
}
|
||||
if(list.orderedBy.length < level + 1) {
|
||||
return 0;
|
||||
}
|
||||
var order = list.orderedBy[level];
|
||||
var r1 = self.localData[record1ID];
|
||||
var r2 = self.localData[record2ID];
|
||||
var data1 = _.extend({}, r1.data, r1._changes);
|
||||
@@ -3680,8 +3686,9 @@ var BasicModel = AbstractModel.extend({
|
||||
if (data1[order.name] > data2[order.name]) {
|
||||
return order.asc ? 1 : -1;
|
||||
}
|
||||
return 0;
|
||||
});
|
||||
return compareRecords(record1ID, record2ID, level + 1);
|
||||
};
|
||||
data.sort(compareRecords);
|
||||
|
||||
// sort res_ids accordingly (only the current range of ids, the one
|
||||
// mapping the data, needs to be sorted)
|
||||
|
||||
Reference in New Issue
Block a user