/**
* author: i@renjie.me
*/
var core = require('web.core');
var Model = require('web.DataModel');
var ListView = require('web.ListView');
var ColumnMany2Many = core.list_widget_registry.get('field.many2many');
ColumnMany2Many.include({
_format: function (row_data, options) {
var self = this;
if (_.isEmpty(row_data[this.id].value)) {
return '';
}else{
row_data[this.id] = row_data[this.id + '__display'];
}
return self._super.apply(self, arguments);
}
});
core.list_widget_registry.add('field.one2many', ColumnMany2Many);
ListView.List.include({
render_cell: function (record, column) {
var self = this;
if (column.type === 'one2many') {
var value = record.get(column.id);
if (value instanceof Array && !_.isEmpty(value) && !record.get(column.id + '__display')) {
new Model(column.relation).call('name_get', [
value, self.dataset.get_context()
]).done(function (names) {
record.set(column.id + '__display', _(names).pluck(1).join(', '));
record.set(column.id, value);
});
record.set(column.id + '__display', false);
}
return column.format(record.toForm().data, {
model: self.dataset.model,
id: record.get('id')
});
}else{
return self._super.apply(self, arguments);
}
}
});