From 2f290527cc1922755cb60f5393730a2a3c59df5b Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Fri, 20 May 2011 15:00:38 +0200 Subject: [PATCH] [ADD] aggregate fields in group title rows bzr revid: xmo@openerp.com-20110520130038-b50oftrx9f88smsa --- addons/base/static/src/js/list.js | 34 +++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/addons/base/static/src/js/list.js b/addons/base/static/src/js/list.js index b0a9b82e4da..10a74362558 100644 --- a/addons/base/static/src/js/list.js +++ b/addons/base/static/src/js/list.js @@ -533,18 +533,30 @@ openerp.base.ListView.Groups = Class.extend( /** @lends openerp.base.ListView.Gr placeholder.appendChild($row[0]); self.pad($row); - var title_column = _(self.columns).chain() + _(self.columns).chain() .filter(function (column) {return !column.invisible;}) - .pluck('id') - .indexOf(group.grouped_on) - .value(); - while (title_column--) { - $row.append(''); - } - $('') - .text(_.sprintf("%s (%d)", group.value instanceof Array ? group.value[1] : group.value, group.length)) - .appendTo($row); - // TODO: aggregate fields + .each(function (column) { + if (column.id === group.grouped_on) { + $('') + .text(_.sprintf("%s (%d)", + group.value instanceof Array ? group.value[1] : group.value, + group.length)) + .appendTo($row); + } else if (column.id in group.aggregates) { + var value = group.aggregates[column.id]; + var format; + if (column.type === 'integer') { + format = "%.0f"; + } else if (column.type === 'float') { + format = "%.2f"; + } + $('') + .text(_.sprintf(format, value)) + .appendTo($row); + } else { + $row.append(''); + } + }); }); return placeholder; },