From 2f4358b921b619257879ac3a60daeeae7876a1e4 Mon Sep 17 00:00:00 2001 From: Vincent Schippefilt Date: Mon, 20 Aug 2018 10:12:44 +0200 Subject: [PATCH] [FIX] web: view list grouped renders nicely Before this fix, the list grouped did not render correctly when the list was not selectable and there was 1 or 2 fields (the sum in the footer was not aligned on the correct column) Also fixed the fact that the group pager was not displayed if the list had only 1 field and it was grouped --- .../static/src/js/views/list/list_renderer.js | 22 +++--- addons/web/static/tests/helpers/test_utils.js | 3 + addons/web/static/tests/views/list_tests.js | 71 ++++++++++++++++++- 3 files changed, 84 insertions(+), 12 deletions(-) diff --git a/addons/web/static/src/js/views/list/list_renderer.js b/addons/web/static/src/js/views/list/list_renderer.js index 2070fc7cf18..942b769e23d 100644 --- a/addons/web/static/src/js/views/list/list_renderer.js +++ b/addons/web/static/src/js/views/list/list_renderer.js @@ -66,6 +66,7 @@ var ListRenderer = BasicRenderer.extend({ this.selection = params.selectedRecords || []; this.pagers = []; // instantiated pagers (only for grouped lists) this.editable = params.editable; + this.isGrouped = this.state.groupedBy.length > 0; }, //-------------------------------------------------------------------------- @@ -83,6 +84,7 @@ var ListRenderer = BasicRenderer.extend({ * @override */ updateState: function (state, params) { + this.isGrouped = state.groupedBy.length > 0; this._processColumns(params.columnInvisibleFields || {}); if (params.selectedRecords) { this.selection = params.selectedRecords; @@ -216,11 +218,13 @@ var ListRenderer = BasicRenderer.extend({ var self = this; return _.map(this.columns, function (column, index) { - if (isHeader && index < HEADING_COLUMNS_TO_SKIP_IN_GROUPS - 1 && - self.columns.length > HEADING_COLUMNS_TO_SKIP_IN_GROUPS) { + if (isHeader && index === 0) { return; } var $cell = $(''); + if (config.debug) { + $cell.addClass(column.attrs.name); + } if (column.attrs.name in aggregateValues) { var field = self.state.fields[column.attrs.name]; var value = aggregateValues[column.attrs.name].value; @@ -324,6 +328,7 @@ var ListRenderer = BasicRenderer.extend({ * @returns {jQuery} a