From 58e22f173fd0a2991105eff990fe90088c377ba5 Mon Sep 17 00:00:00 2001 From: Dennis Sluijk Date: Thu, 20 Sep 2018 16:05:34 +0200 Subject: [PATCH] [IMP] web_widget_x2many_2d_matrix: Total of all rows (#1043) --- web_widget_x2many_2d_matrix/README.rst | 1 + web_widget_x2many_2d_matrix/__manifest__.py | 2 +- .../static/description/screenshot.png | Bin 22639 -> 24402 bytes .../static/src/js/2d_matrix_renderer.js | 33 ++++++++++++++++-- 4 files changed, 32 insertions(+), 4 deletions(-) diff --git a/web_widget_x2many_2d_matrix/README.rst b/web_widget_x2many_2d_matrix/README.rst index 52b2f3cf..e9d10d2a 100644 --- a/web_widget_x2many_2d_matrix/README.rst +++ b/web_widget_x2many_2d_matrix/README.rst @@ -168,6 +168,7 @@ Contributors * Simone Orsi * Timon Tschanz * Jairo Llopis +* Dennis Sluijk Maintainer ---------- diff --git a/web_widget_x2many_2d_matrix/__manifest__.py b/web_widget_x2many_2d_matrix/__manifest__.py index d3743de2..e0d80115 100644 --- a/web_widget_x2many_2d_matrix/__manifest__.py +++ b/web_widget_x2many_2d_matrix/__manifest__.py @@ -4,7 +4,7 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). { "name": "2D matrix for x2many fields", - "version": "11.0.1.0.2", + "version": "11.0.1.1.0", "author": "Therp BV, " "Tecnativa, " "Camptocamp, " diff --git a/web_widget_x2many_2d_matrix/static/description/screenshot.png b/web_widget_x2many_2d_matrix/static/description/screenshot.png index 922e2961351acf706cef3946526403daa48108ee..4b75baa8aa91dfd4c43f9ca5f57f0d12ca7ad72a 100644 GIT binary patch literal 24402 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 H4}$*+RqrIY literal 22639 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 r>fzl$K|JvKXQTEXt=<2}9eYQ;db').append( - $('').append('').append($cells) - ); + var $tr = $('').append('').append($cells); + var $total_cell = this._renderTotalCell(); + if ($total_cell) { + $tr.append($total_cell); + } + return $('').append($tr); } }, + /** + * Renders the total cell (of all rows / columns) + * + * @private + * @returns {jQueryElement} The td element with the total in it. + */ + _renderTotalCell: function() { + if (!this.matrix_data.show_column_totals || + !this.matrix_data.show_row_totals) { + return; + } + + var $cell = $('', {class: 'col-total text-right'}); + this._apply_aggregate_value($cell, this.total); + return $cell; + }, + /** * Render the Aggregate cells for the column. * @@ -346,6 +366,12 @@ odoo.define('web_widget_x2many_2d_matrix.X2Many2dMatrixRenderer', function (requ if (!~['integer', 'float', 'monetary'].indexOf(type)) { return; } + this.total = { + fname: fname, + ftype: type, + help: _t('Sum Total'), + value: 0, + }; _.each(this.columns, function (column, index) { column.aggregate = { fname: fname, @@ -361,6 +387,7 @@ odoo.define('web_widget_x2many_2d_matrix.X2Many2dMatrixRenderer', function (requ // Nothing to do } }); + this.total.value += column.aggregate.value; }.bind(this)); },