diff options
| author | Christophe Simonis <chs@odoo.com> | 2018-05-17 13:19:49 +0200 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2018-05-17 13:19:49 +0200 |
| commit | 16552029241b3a7a3d9a40b8b7399da6ee415be4 (patch) | |
| tree | 476f735d8d3a2732a139e143981e46b1a18ae70f /addons/web/static/src | |
| parent | fc3177af9eb9355f41955b581149a80c22b8b2b0 (diff) | |
| parent | 59a8a1cd8eec1af59df2d62d7c3b10b7cff3dfc9 (diff) | |
[MERGE] forward port branch 11.0 up to 59a8a1cd8ee
Diffstat (limited to 'addons/web/static/src')
| -rw-r--r-- | addons/web/static/src/js/views/basic/basic_model.js | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/addons/web/static/src/js/views/basic/basic_model.js b/addons/web/static/src/js/views/basic/basic_model.js index f7ef80cb2c6..8b266d8ffef 100644 --- a/addons/web/static/src/js/views/basic/basic_model.js +++ b/addons/web/static/src/js/views/basic/basic_model.js @@ -4105,10 +4105,20 @@ var BasicModel = AbstractModel.extend({ var r2 = self.localData[record2ID]; var data1 = _.extend({}, r1.data, r1._changes); var data2 = _.extend({}, r2.data, r2._changes); - if (data1[order.name] < data2[order.name]) { + + // Default value to sort against: the value of the field + var orderData1 = data1[order.name]; + var orderData2 = data2[order.name]; + + // If the field is a relation, sort on the display_name of those records + if (list.fields[order.name].type === 'many2one') { + orderData1 = orderData1 ? self.localData[orderData1].data.display_name : ""; + orderData2 = orderData2 ? self.localData[orderData2].data.display_name : ""; + } + if (orderData1 < orderData2) { return order.asc ? -1 : 1; } - if (data1[order.name] > data2[order.name]) { + if (orderData1 > orderData2) { return order.asc ? 1 : -1; } return compareRecords(record1ID, record2ID, level + 1); |
