diff --git a/addons/web/static/src/js/views/search/groupby_menu_interface_mixin.js b/addons/web/static/src/js/views/search/groupby_menu_interface_mixin.js index 9e0e1621c27..d782eb99015 100644 --- a/addons/web/static/src/js/views/search/groupby_menu_interface_mixin.js +++ b/addons/web/static/src/js/views/search/groupby_menu_interface_mixin.js @@ -54,6 +54,7 @@ var GroupByMenuInterfaceMixin = { defaultOptionId: groupby ? groupby.interval : false, }); }); + groupbys = _.sortBy(groupbys, 'description'); var groupByMenu = new GroupByMenu(this, groupbys, groupableFields, {headerStyle: 'primary'}); groupByMenu.insertAfter($node.find('div:first')); }, diff --git a/addons/web/static/src/js/widgets/dropdown_menu.js b/addons/web/static/src/js/widgets/dropdown_menu.js index 335eed80e0e..6fb8aab9bb4 100644 --- a/addons/web/static/src/js/widgets/dropdown_menu.js +++ b/addons/web/static/src/js/widgets/dropdown_menu.js @@ -52,7 +52,7 @@ var DropdownMenu = Widget.extend({ el: {class: 'btn-group o_dropdown', attrs: {}}, mainButton: {class: 'o_dropdown_toggler_btn btn btn-sm btn-default dropdown-toggle'}, }; - this.items = _.sortBy(items, 'groupId'); + this.items = items; _.each(this.items, this._prepareItem.bind(this)); }, /** diff --git a/addons/web/static/tests/views/search_view_tests.js b/addons/web/static/tests/views/search_view_tests.js index 53f387d4990..e88028e5da4 100644 --- a/addons/web/static/tests/views/search_view_tests.js +++ b/addons/web/static/tests/views/search_view_tests.js @@ -78,11 +78,18 @@ QUnit.module('Search View', { search_view_id: [5, 'search'], }, { id: 7, - name: 'Partners Action 8', + name: 'Partners Action 7', res_model: 'partner', type: 'ir.actions.act_window', views: [[2, 'list']], search_view_id: [6, 'search'], + }, { + id: 8, + name: 'Partners Action 8', + res_model: 'partner', + type: 'ir.actions.act_window', + views: [[2, 'list']], + search_view_id: [7, 'search'], } ]; @@ -118,12 +125,35 @@ QUnit.module('Search View', { 'partner,5,search': ''+ '' + '' + - '', + '', 'partner,6,search': ''+ '' + '' + '' + - '', + '', + 'partner,7,search': ''+ + '' + + '' + + '' + + '' + + '' + + '' + + '' + + '' + + '' + + '' + + '' + + '' + + '' + + '' + + '' + + '' + + '' + + '' + + '' + + '' + + '' + + '', }; }, }, function () { @@ -475,5 +505,23 @@ QUnit.module('Search View', { $('.o_favorites_menu .o_save_name button').click(); actionManager.destroy(); }); + + QUnit.test('arch order of groups of filters preserved', function (assert) { + assert.expect(12); + + var actionManager = createActionManager({ + actions: this.actions, + archs: this.archs, + data: this.data, + }); + + actionManager.doAction(8); + $('span.fa-filter').click(); + assert.strictEqual($('.o_filters_menu .o_menu_item').length, 11); + for (var i = 0; i < 11; i++) { + assert.strictEqual($('.o_filters_menu .o_menu_item').eq(i).text().trim(), (i+1).toString()); + } + actionManager.destroy(); + }); }); });