[FIX] kanban: propagate context of many2many field

Propagate the context in kanban view when displaying a many2many field.

fixes #5623, closes #5681

opw-629698
This commit is contained in:
Nicolas Lempereur 2015-03-10 11:13:45 +01:00 committed by Christophe Simonis
parent e2ccc5709b
commit e1daaff8e0
1 changed files with 7 additions and 2 deletions

View File

@ -28,6 +28,7 @@ instance.web_kanban.KanbanView = instance.web.View.extend({
this.group_by_field = {};
this.grouped_by_m2o = false;
this.many2manys = [];
this.m2m_context = {};
this.state = {
groups : {},
records : {}
@ -115,6 +116,10 @@ instance.web_kanban.KanbanView = instance.web.View.extend({
this.aggregates[node.attrs.name] = node.attrs[this.group_operators[j]];
break;
}
};
var ftype = node.attrs.widget || this.fields_view.fields[node.attrs.name].type;
if(ftype == "many2many" && "context" in node.attrs) {
this.m2m_context[node.attrs.name] = node.attrs.context;
}
},
transform_qweb_template: function(node) {
@ -490,7 +495,7 @@ instance.web_kanban.KanbanView = instance.web.View.extend({
var field = record.record[name];
var $el = record.$('.oe_form_field.oe_tags[name=' + name + ']').empty();
if (!relations[field.relation]) {
relations[field.relation] = { ids: [], elements: {}};
relations[field.relation] = { ids: [], elements: {}, context: self.m2m_context[name]};
}
var rel = relations[field.relation];
field.raw_value.forEach(function(id) {
@ -504,7 +509,7 @@ instance.web_kanban.KanbanView = instance.web.View.extend({
});
});
_.each(relations, function(rel, rel_name) {
var dataset = new instance.web.DataSetSearch(self, rel_name, self.dataset.get_context());
var dataset = new instance.web.DataSetSearch(self, rel_name, self.dataset.get_context(rel.context));
dataset.name_get(_.uniq(rel.ids)).done(function(result) {
result.forEach(function(nameget) {
$(rel.elements[nameget[0]]).append('<span class="oe_tag">' + _.str.escapeHTML(nameget[1]) + '</span>');