diff options
| author | Christophe Simonis <chs@odoo.com> | 2017-09-06 13:29:05 +0200 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2017-09-06 13:29:05 +0200 |
| commit | b8dd34fcbb895b8d62f3e133dcf5ee6f40a1400d (patch) | |
| tree | 196c99a14d51d88a2f81f12be98fb8ff2c4359f7 /addons/web/static/src/js/services | |
| parent | 16541ae2ae953195f1bd0036e474aac0014aee4b (diff) | |
| parent | 64d56995e049d7e7bc3aa7af5a16603220b0d4bc (diff) | |
[MERGE] forward port branch saas-16 up to 64d56995e04
Diffstat (limited to 'addons/web/static/src/js/services')
| -rw-r--r-- | addons/web/static/src/js/services/data_manager.js | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/addons/web/static/src/js/services/data_manager.js b/addons/web/static/src/js/services/data_manager.js index 77857ef2d31..105d7f30d69 100644 --- a/addons/web/static/src/js/services/data_manager.js +++ b/addons/web/static/src/js/services/data_manager.js @@ -305,18 +305,6 @@ return core.Class.extend({ viewType = viewType === 'tree' ? 'list' : viewType; innerFieldsView.type = viewType; attrs.views[viewType] = self._processFieldsView(_.extend({}, innerFieldsView)); - - // default_order is like: - // 'name,id desc' - // but we need it like: - // [{name: 'id', asc: false}, {name: 'name', asc: true}] - var defaultOrder = innerFieldsView.arch.attrs.default_order; - if (defaultOrder) { - attrs.orderedBy = _.map(defaultOrder.split(','), function (order) { - order = order.trim().split(' '); - return {name: order[0], asc: order[1] !== 'desc'}; - }); - } }); delete field.views; } @@ -346,6 +334,23 @@ return core.Class.extend({ } } attrs.mode = mode; + if (mode in attrs.views) { + var view = attrs.views[mode]; + // process the default_order, which is like 'name,id desc' + // but we need it like [{name: 'name', asc: true}, {name: 'id', asc: false}] + var defaultOrder = view.arch.attrs.default_order; + if (defaultOrder) { + attrs.orderedBy = _.map(defaultOrder.split(','), function (order) { + order = order.trim().split(' '); + return {name: order[0], asc: order[1] !== 'desc'}; + }); + } + // detect editables list has they behave differently with respect + // to the sorting (changes are not sorted directly) + if (mode === 'list' && view.arch.attrs.editable) { + attrs.keepChangesUnsorted = true; + } + } } if (attrs.Widget.prototype.fieldsToFetch) { attrs.viewType = 'default'; |
