Pedro M. Baeza
9 years ago
3 changed files with 30 additions and 32 deletions
-
1web_widget_many2many_tags_multi_selection/README.rst
-
6web_widget_many2many_tags_multi_selection/__openerp__.py
-
55web_widget_many2many_tags_multi_selection/static/src/js/view_form.js
@ -1,39 +1,38 @@ |
|||
odoo.define('web_widget_many2many_tags_multi_selection.multiple_tags', function (require) { |
|||
"use strict"; |
|||
openerp.web_widget_many2many_tags_multi_selection = function(instance, local) { |
|||
|
|||
var FormCommon = require('web.form_common'); |
|||
var core = require('web.core'); |
|||
var data = require('web.data'); |
|||
var _t = core._t; |
|||
var _t = instance.web._t; |
|||
|
|||
FormCommon.CompletionFieldMixin._search_create_popup = function(view, ids, context) { |
|||
instance.web.form.CompletionFieldMixin._search_create_popup = function(view, ids, context) { |
|||
var self = this; |
|||
new FormCommon.SelectCreateDialog(this, { |
|||
res_model: self.field.relation, |
|||
domain: self.build_domain(), |
|||
context: new data.CompoundContext(self.build_context(), context || {}), |
|||
title: (view === 'search' ? _t("Search: ") : _t("Create: ")) + this.string, |
|||
initial_ids: ids ? _.map(ids, function(x) {return x[0];}) : undefined, |
|||
initial_view: view, |
|||
disable_multiple_selection: this.field.type != 'many2many', |
|||
on_selected: function(element_ids) { |
|||
for(var i=0, len=element_ids.length; i<len;i++) { |
|||
self.add_id(element_ids[i]); |
|||
if (self.field.type != 'many2many') { |
|||
break; |
|||
} |
|||
} |
|||
self.focus(); |
|||
} |
|||
}).open(); |
|||
var pop = new instance.web.form.SelectCreatePopup(this); |
|||
var domain = self.build_domain(); |
|||
|
|||
if (self.field.type == 'many2many') { |
|||
var selected_ids = self.get_search_blacklist(); |
|||
if (selected_ids.length > 0) { |
|||
domain = new data.CompoundDomain(domain, ["!", ["id", "in", selected_ids]]); |
|||
domain = new instance.web.CompoundDomain(domain, ["!", ["id", "in", selected_ids]]); |
|||
} |
|||
} |
|||
|
|||
} |
|||
}); |
|||
pop.select_element( |
|||
self.field.relation, |
|||
{ |
|||
title: (view === 'search' ? _t("Search: ") : _t("Create: ")) + this.string, |
|||
initial_ids: ids ? _.map(ids, function(x) {return x[0];}) : undefined, |
|||
initial_view: view, |
|||
disable_multiple_selection: this.field.type != 'many2many', |
|||
}, |
|||
domain, |
|||
new instance.web.CompoundContext(self.build_context(), context || {}) |
|||
); |
|||
pop.on("elements_selected", self, function(element_ids) { |
|||
for(var i=0, len=element_ids.length; i<len;i++) { |
|||
self.add_id(element_ids[i]); |
|||
if (self.field.type != 'many2many') { |
|||
break; |
|||
} |
|||
} |
|||
self.focus(); |
|||
}); |
|||
}; |
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue