summaryrefslogtreecommitdiff
path: root/addons/base/static/src
diff options
context:
space:
mode:
authorXavier Morel <xmo@openerp.com>2011-07-25 12:29:49 +0200
committerXavier Morel <xmo@openerp.com>2011-07-25 12:29:49 +0200
commit05b9d6217fbd05fe44cdb6b60aec4c2e406c4983 (patch)
tree8ba0ca034071fab9a14c3a73928f05c1a78148ec /addons/base/static/src
parent6b9ba5d46e0d6ac25b3282d3c81799f313e4c55a (diff)
[FIX] formatting of aggregated fields, formatting of floats in list view (use digits if available, otherwise default to 2)
bzr revid: xmo@openerp.com-20110725102949-z7nkuwyybuczazxy
Diffstat (limited to 'addons/base/static/src')
-rw-r--r--addons/base/static/src/js/list.js37
-rw-r--r--addons/base/static/src/xml/base.xml2
2 files changed, 21 insertions, 18 deletions
diff --git a/addons/base/static/src/js/list.js b/addons/base/static/src/js/list.js
index 09be43ec24e..8c017596a57 100644
--- a/addons/base/static/src/js/list.js
+++ b/addons/base/static/src/js/list.js
@@ -29,9 +29,11 @@ openerp.base.list = {
return value_if_empty === undefined ? '' : value_if_empty;
}
switch (column.widget || column.type) {
- case 'many2one':
- // name_get value format
- return record.value[1];
+ case 'integer':
+ return _.sprintf('%d', record.value);
+ case 'float':
+ var precision = column.digits ? column.digits[1] : 2;
+ return _.sprintf('%.' + precision + 'f', record.value);
case 'float_time':
return _.sprintf("%02d:%02d",
Math.floor(record.value),
@@ -40,6 +42,9 @@ openerp.base.list = {
return _.sprintf(
'<progress value="%.2f" max="100.0">%.2f%%</progress>',
record.value, record.value);
+ case 'many2one':
+ // name_get value format
+ return record.value[1];
default:
return record.value;
}
@@ -352,12 +357,10 @@ openerp.base.ListView = openerp.base.View.extend( /** @lends openerp.base.ListVi
return {};
}
- return {
- field: column.id,
- type: column.type,
+ return _.extend({}, column, {
'function': aggregation_func,
label: column[aggregation_func]
- };
+ });
});
},
/**
@@ -571,11 +574,11 @@ openerp.base.ListView = openerp.base.View.extend( /** @lends openerp.base.ListVi
}
var count = 0, sums = {};
- _(columns).each(function (column) { sums[column.field] = 0; });
+ _(columns).each(function (column) { sums[column.id] = 0; });
_(records).each(function (record) {
count += record.count || 1;
_(columns).each(function (column) {
- var field = column.field;
+ var field = column.id;
switch (column['function']) {
case 'sum':
sums[field] += record.values[field];
@@ -589,13 +592,13 @@ openerp.base.ListView = openerp.base.View.extend( /** @lends openerp.base.ListVi
var aggregates = {};
_(columns).each(function (column) {
- var field = column.field;
+ var field = column.id;
switch (column['function']) {
case 'sum':
- aggregates[field] = sums[field];
+ aggregates[field] = {value: sums[field]};
break;
case 'avg':
- aggregates[field] = sums[field] / count;
+ aggregates[field] = {value: sums[field] / count};
break;
}
});
@@ -608,9 +611,9 @@ openerp.base.ListView = openerp.base.View.extend( /** @lends openerp.base.ListVi
if (!column['function']) {
return;
}
- var pattern = (column.type == 'integer') ? '%d' : '%.2f';
- $footer_cells.filter(_.sprintf('[data-field=%s]', column.field))
- .text(_.sprintf(pattern, aggregation[column.field]));
+
+ $footer_cells.filter(_.sprintf('[data-field=%s]', column.id))
+ .html(openerp.base.list.render_cell(aggregation, column));
});
}
// TODO: implement reorder (drag and drop rows)
@@ -988,8 +991,8 @@ openerp.base.ListView.Groups = openerp.base.Class.extend( /** @lends openerp.bas
row_data[group.grouped_on] = group;
var group_column = _(self.columns).detect(function (column) {
return column.id === group.grouped_on; });
- $group_column.text(openerp.base.list.render_cell(
- row_data, group_column, "Undefined"
+ $group_column.html(openerp.base.list.render_cell(
+ row_data, group_column, "Undefined"
));
if (group.openable) {
// Make openable if not terminal group & group_by_no_leaf
diff --git a/addons/base/static/src/xml/base.xml b/addons/base/static/src/xml/base.xml
index 414dd0ed183..5bb63d2356a 100644
--- a/addons/base/static/src/xml/base.xml
+++ b/addons/base/static/src/xml/base.xml
@@ -293,7 +293,7 @@
<tr>
<td t-if="options.selectable"/>
<td t-foreach="aggregate_columns" t-as="column" class="oe-list-footer oe-number"
- t-att-data-field="column.field" t-att-title="column.label">
+ t-att-data-field="column.id" t-att-title="column.label">
</td>
<td t-if="options.deletable"/>
</tr>