[FIX] web: list view: keep original fields.reference value instact, store it's display in fake field_name+'__display' column, so that editing value in editable tree mode works

bzr revid: xal@openerp.com-20140114100439-hvdu9cxwyb3vvsum
This commit is contained in:
Xavier ALT 2014-01-14 11:04:39 +01:00
parent e00c236693
commit 9a84e25342
1 changed files with 16 additions and 1 deletions

View File

@ -1022,7 +1022,7 @@ instance.web.ListView.List = instance.web.Class.extend( /** @lends instance.web.
id = parseInt(ref_match[2], 10);
new instance.web.DataSet(this.view, model).name_get([id]).done(function(names) {
if (!names.length) { return; }
record.set(column.id, names[0][1]);
record.set(column.id + '__display', names[0][1]);
});
}
} else if (column.type === 'many2one') {
@ -2095,6 +2095,7 @@ instance.web.list.columns = new instance.web.Registry({
'field.handle': 'instance.web.list.Handle',
'button': 'instance.web.list.Button',
'field.many2onebutton': 'instance.web.list.Many2OneButton',
'field.reference': 'instance.web.list.Reference',
'field.many2many': 'instance.web.list.Many2Many'
});
instance.web.list.columns.for_ = function (id, field, node) {
@ -2307,5 +2308,19 @@ instance.web.list.Many2Many = instance.web.list.Column.extend({
return this._super(row_data, options);
}
});
instance.web.list.Reference = instance.web.list.Column.extend({
_format: function (row_data, options) {
if (!_.isEmpty(row_data[this.id].value)) {
// If value, use __display version for printing
//console.log('_format', row_data[this.id], row_data[this.id + '__display']);
if (!!row_data[this.id + '__display']) {
row_data[this.id] = row_data[this.id + '__display'];
} else {
row_data[this.id] = {'value': ''};
}
}
return this._super(row_data, options);
}
});
};
// vim:et fdc=0 fdl=0 foldnestmax=3 fdm=syntax: