diff options
| author | Christophe Simonis <chs@odoo.com> | 2018-05-17 14:23:37 +0200 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2018-05-17 14:23:37 +0200 |
| commit | 644f0959d05d6467260f685ec3ac369e6cf81457 (patch) | |
| tree | 84eabeb182621c974afc85355c0ff5cab6e7d7d7 /addons/web/static/src/js/views/basic | |
| parent | 87818f7fccc045f6011ab8f4f96c447740d6f41e (diff) | |
| parent | 16552029241b3a7a3d9a40b8b7399da6ee415be4 (diff) | |
[MERGE] forward port branch saas-11.2 up to 16552029241
Diffstat (limited to 'addons/web/static/src/js/views/basic')
| -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 d7cc08ea974..9c38ecc3a58 100644 --- a/addons/web/static/src/js/views/basic/basic_model.js +++ b/addons/web/static/src/js/views/basic/basic_model.js @@ -4137,10 +4137,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); |
