You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

41 lines
1.7 KiB

odoo.define('web_widget_many2many_tags_multi_selection.multiple_tags', function (require) {
"use strict";
var rel_fields = require('web.relational_fields');
var dialogs = require('web.view_dialogs');
var core = require('web.core');
var _t = core._t;
rel_fields.FieldMany2One.include({
_searchCreatePopup: function(view, ids, context) {
var self = this;
// Don't include already selected instances in the search domain
var domain = self.record.getDomain({fieldName: self.name});
if (self.field.type === 'many2many') {
var selected_ids = self._getSearchBlacklist();
if (selected_ids.length > 0) {
domain.push(['id', 'not in', selected_ids]);
}
}
new dialogs.SelectCreateDialog(self, _.extend({}, self.nodeOptions, {
res_model: self.field.relation,
domain: domain,
context: _.extend({}, self.record.getContext(self.recordParams), context || {}),
title: (view === 'search' ? _t("Search: ") : _t("Create: ")) + self.string,
initial_ids: ids ? _.map(ids, function(x) {return x[0];}) : undefined,
initial_view: view,
disable_multiple_selection: self.field.type !== 'many2many',
on_selected: function(records) {
if (self.field.type !== 'many2many') {
self.reinitialize(records[0]);
} else {
self.reinitialize(records);
}
self.activate();
}
})).open();
},
});
});