[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
This commit is contained in:
parent
6b9ba5d46e
commit
05b9d6217f
|
@ -29,9 +29,11 @@ openerp.base.list = {
|
||||||
return value_if_empty === undefined ? '' : value_if_empty;
|
return value_if_empty === undefined ? '' : value_if_empty;
|
||||||
}
|
}
|
||||||
switch (column.widget || column.type) {
|
switch (column.widget || column.type) {
|
||||||
case 'many2one':
|
case 'integer':
|
||||||
// name_get value format
|
return _.sprintf('%d', record.value);
|
||||||
return record.value[1];
|
case 'float':
|
||||||
|
var precision = column.digits ? column.digits[1] : 2;
|
||||||
|
return _.sprintf('%.' + precision + 'f', record.value);
|
||||||
case 'float_time':
|
case 'float_time':
|
||||||
return _.sprintf("%02d:%02d",
|
return _.sprintf("%02d:%02d",
|
||||||
Math.floor(record.value),
|
Math.floor(record.value),
|
||||||
|
@ -40,6 +42,9 @@ openerp.base.list = {
|
||||||
return _.sprintf(
|
return _.sprintf(
|
||||||
'<progress value="%.2f" max="100.0">%.2f%%</progress>',
|
'<progress value="%.2f" max="100.0">%.2f%%</progress>',
|
||||||
record.value, record.value);
|
record.value, record.value);
|
||||||
|
case 'many2one':
|
||||||
|
// name_get value format
|
||||||
|
return record.value[1];
|
||||||
default:
|
default:
|
||||||
return record.value;
|
return record.value;
|
||||||
}
|
}
|
||||||
|
@ -352,12 +357,10 @@ openerp.base.ListView = openerp.base.View.extend( /** @lends openerp.base.ListVi
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return _.extend({}, column, {
|
||||||
field: column.id,
|
|
||||||
type: column.type,
|
|
||||||
'function': aggregation_func,
|
'function': aggregation_func,
|
||||||
label: column[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 = {};
|
var count = 0, sums = {};
|
||||||
_(columns).each(function (column) { sums[column.field] = 0; });
|
_(columns).each(function (column) { sums[column.id] = 0; });
|
||||||
_(records).each(function (record) {
|
_(records).each(function (record) {
|
||||||
count += record.count || 1;
|
count += record.count || 1;
|
||||||
_(columns).each(function (column) {
|
_(columns).each(function (column) {
|
||||||
var field = column.field;
|
var field = column.id;
|
||||||
switch (column['function']) {
|
switch (column['function']) {
|
||||||
case 'sum':
|
case 'sum':
|
||||||
sums[field] += record.values[field];
|
sums[field] += record.values[field];
|
||||||
|
@ -589,13 +592,13 @@ openerp.base.ListView = openerp.base.View.extend( /** @lends openerp.base.ListVi
|
||||||
|
|
||||||
var aggregates = {};
|
var aggregates = {};
|
||||||
_(columns).each(function (column) {
|
_(columns).each(function (column) {
|
||||||
var field = column.field;
|
var field = column.id;
|
||||||
switch (column['function']) {
|
switch (column['function']) {
|
||||||
case 'sum':
|
case 'sum':
|
||||||
aggregates[field] = sums[field];
|
aggregates[field] = {value: sums[field]};
|
||||||
break;
|
break;
|
||||||
case 'avg':
|
case 'avg':
|
||||||
aggregates[field] = sums[field] / count;
|
aggregates[field] = {value: sums[field] / count};
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -608,9 +611,9 @@ openerp.base.ListView = openerp.base.View.extend( /** @lends openerp.base.ListVi
|
||||||
if (!column['function']) {
|
if (!column['function']) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var pattern = (column.type == 'integer') ? '%d' : '%.2f';
|
|
||||||
$footer_cells.filter(_.sprintf('[data-field=%s]', column.field))
|
$footer_cells.filter(_.sprintf('[data-field=%s]', column.id))
|
||||||
.text(_.sprintf(pattern, aggregation[column.field]));
|
.html(openerp.base.list.render_cell(aggregation, column));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
// TODO: implement reorder (drag and drop rows)
|
// 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;
|
row_data[group.grouped_on] = group;
|
||||||
var group_column = _(self.columns).detect(function (column) {
|
var group_column = _(self.columns).detect(function (column) {
|
||||||
return column.id === group.grouped_on; });
|
return column.id === group.grouped_on; });
|
||||||
$group_column.text(openerp.base.list.render_cell(
|
$group_column.html(openerp.base.list.render_cell(
|
||||||
row_data, group_column, "Undefined"
|
row_data, group_column, "Undefined"
|
||||||
));
|
));
|
||||||
if (group.openable) {
|
if (group.openable) {
|
||||||
// Make openable if not terminal group & group_by_no_leaf
|
// Make openable if not terminal group & group_by_no_leaf
|
||||||
|
|
|
@ -293,7 +293,7 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td t-if="options.selectable"/>
|
<td t-if="options.selectable"/>
|
||||||
<td t-foreach="aggregate_columns" t-as="column" class="oe-list-footer oe-number"
|
<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>
|
||||||
<td t-if="options.deletable"/>
|
<td t-if="options.deletable"/>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
Loading…
Reference in New Issue