[FIX] correctly update many2many in listview (web client)

Fixes the issue #1216 (follow the link for more information). The issue
was caused by a hack in list view: the magical suffix __display is used
in render_cell to determine if a many2many field should be updated. This
commit simply makes sure that old many2many fields + __display keys are
cleared.

A better way would be to redesign/refactor the list view to avoid that
hack in the first place.  But this would be a much more complex task.
This commit is contained in:
Pierre Verkest 2014-11-06 16:18:33 +01:00 committed by Géry Debongnie
parent e2dd18f1e7
commit f0e331e005
1 changed files with 3 additions and 2 deletions

View File

@ -541,8 +541,9 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
self.records.remove(record);
return;
}
_(_.keys(values)).each(function(key){
record.set(key, values[key], {silent: true});
_.each(values, function (value, key) {
record.set(key + '__display', false, {silent: true});
record.set(key, value, {silent: true});
});
record.trigger('change', record);
});