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