mirror of https://github.com/OCA/web.git
web_m2x_options check Many2one and Many2many options
parent
6213da32b7
commit
e4d520e2c5
|
@ -67,11 +67,11 @@ openerp.web_m2x_options = function (instance) {
|
||||||
var self = this;
|
var self = this;
|
||||||
// add options limit used to change number of selections record
|
// add options limit used to change number of selections record
|
||||||
// returned.
|
// returned.
|
||||||
if (_.isUndefined(this.view))
|
if (_.isUndefined(this.view))
|
||||||
return this._super.apply(this, arguments);
|
return this._super.apply(this, arguments);
|
||||||
if (!_.isUndefined(this.view.ir_options['web_m2x_options.limit'])) {
|
if (!_.isUndefined(this.view.ir_options['web_m2x_options.limit'])) {
|
||||||
this.limit = parseInt(this.view.ir_options['web_m2x_options.limit']);
|
this.limit = parseInt(this.view.ir_options['web_m2x_options.limit']);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (typeof this.options.limit === 'number') {
|
if (typeof this.options.limit === 'number') {
|
||||||
this.limit = this.options.limit;
|
this.limit = this.options.limit;
|
||||||
|
@ -99,8 +99,7 @@ openerp.web_m2x_options = function (instance) {
|
||||||
self.build_context()));
|
self.build_context()));
|
||||||
|
|
||||||
var create_rights;
|
var create_rights;
|
||||||
if (typeof this.options.create === "undefined" ||
|
if (!(self.options && (self.options.no_create || self.options.no_create_edit))) {
|
||||||
typeof this.options.create_edit === "undefined") {
|
|
||||||
create_rights = new instance.web.Model(this.field.relation).call(
|
create_rights = new instance.web.Model(this.field.relation).call(
|
||||||
"check_access_rights", ["create", false]);
|
"check_access_rights", ["create", false]);
|
||||||
}
|
}
|
||||||
|
@ -171,10 +170,15 @@ openerp.web_m2x_options = function (instance) {
|
||||||
var raw_result = _(data.result).map(function (x) {
|
var raw_result = _(data.result).map(function (x) {
|
||||||
return x[1];
|
return x[1];
|
||||||
});
|
});
|
||||||
|
var no_quick_create = (
|
||||||
|
self.options && (self.options.no_create ||
|
||||||
|
self.options.no_quick_create)
|
||||||
|
)
|
||||||
|
var m2x_create_undef = _.isUndefined(self.view.ir_options['web_m2x_options.create'])
|
||||||
|
var m2x_create = self.view.ir_options['web_m2x_options.create'] == "True"
|
||||||
|
|
||||||
if ((_.isUndefined(self.options.create) && _.isUndefined(self.view.ir_options['web_m2x_options.create']) && can_create) ||
|
if (!no_quick_create && ((m2x_create_undef && can_create) ||
|
||||||
(_.isUndefined(self.options.create) && self.view.ir_options['web_m2x_options.create'] == "True") ||
|
m2x_create)) {
|
||||||
self.options.create) {
|
|
||||||
|
|
||||||
if (search_val.length > 0 &&
|
if (search_val.length > 0 &&
|
||||||
!_.include(raw_result, search_val)) {
|
!_.include(raw_result, search_val)) {
|
||||||
|
@ -192,10 +196,15 @@ openerp.web_m2x_options = function (instance) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// create...
|
// create...
|
||||||
|
var no_create_edit = (
|
||||||
|
self.options && (self.options.no_create ||
|
||||||
|
self.options.no_create_edit)
|
||||||
|
)
|
||||||
|
var m2x_create_edit_undef = _.isUndefined(self.view.ir_options['web_m2x_options.create_edit'])
|
||||||
|
var m2x_create_edit = self.view.ir_options['web_m2x_options.create_edit'] == "True"
|
||||||
|
|
||||||
if ((_.isUndefined(self.options.create_edit) && _.isUndefined(self.view.ir_options['web_m2x_options.create_edit']) && can_create) ||
|
if (!no_create_edit && ((m2x_create_edit_undef && can_create) ||
|
||||||
(_.isUndefined(self.options.create) && self.view.ir_options['web_m2x_options.create_edit'] == "True") ||
|
m2x_create_edit)) {
|
||||||
self.options.create_edit) {
|
|
||||||
|
|
||||||
values.push({
|
values.push({
|
||||||
label: _t("Create and Edit..."),
|
label: _t("Create and Edit..."),
|
||||||
|
@ -227,27 +236,27 @@ openerp.web_m2x_options = function (instance) {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
start: function() {
|
start: function() {
|
||||||
this._super.apply(this, arguments);
|
this._super.apply(this, arguments);
|
||||||
return this.get_options();
|
return this.get_options();
|
||||||
},
|
},
|
||||||
|
|
||||||
get_options: function() {
|
get_options: function() {
|
||||||
var self = this;
|
var self = this;
|
||||||
if (_.isUndefined(this.view.ir_options_loaded)) {
|
if (_.isUndefined(this.view.ir_options_loaded)) {
|
||||||
this.view.ir_options_loaded = $.Deferred();
|
this.view.ir_options_loaded = $.Deferred();
|
||||||
this.view.ir_options = {};
|
this.view.ir_options = {};
|
||||||
(new instance.web.Model("ir.config_parameter"))
|
(new instance.web.Model("ir.config_parameter"))
|
||||||
.query(["key", "value"]).filter([['key', 'in', OPTIONS]])
|
.query(["key", "value"]).filter([['key', 'in', OPTIONS]])
|
||||||
.all().then(function(records) {
|
.all().then(function(records) {
|
||||||
_(records).each(function(record) {
|
_(records).each(function(record) {
|
||||||
self.view.ir_options[record.key] = record.value;
|
self.view.ir_options[record.key] = record.value;
|
||||||
});
|
});
|
||||||
self.view.ir_options_loaded.resolve();
|
self.view.ir_options_loaded.resolve();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
return this.view.ir_options_loaded;
|
return this.view.ir_options_loaded;
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Call this method to search using a string.
|
* Call this method to search using a string.
|
||||||
|
@ -259,9 +268,9 @@ openerp.web_m2x_options = function (instance) {
|
||||||
// add options limit used to change number of selections record
|
// add options limit used to change number of selections record
|
||||||
// returned.
|
// returned.
|
||||||
|
|
||||||
if (!_.isUndefined(this.view.ir_options['web_m2x_options.limit'])) {
|
if (!_.isUndefined(this.view.ir_options['web_m2x_options.limit'])) {
|
||||||
this.limit = parseInt(this.view.ir_options['web_m2x_options.limit']);
|
this.limit = parseInt(this.view.ir_options['web_m2x_options.limit']);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (typeof this.options.limit === 'number') {
|
if (typeof this.options.limit === 'number') {
|
||||||
this.limit = this.options.limit;
|
this.limit = this.options.limit;
|
||||||
|
@ -300,10 +309,14 @@ openerp.web_m2x_options = function (instance) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
// quick create
|
// quick create
|
||||||
|
var no_quick_create = (
|
||||||
|
self.options && (self.options.no_create ||
|
||||||
|
self.options.no_quick_create)
|
||||||
|
)
|
||||||
|
var m2x_create_undef = _.isUndefined(self.view.ir_options['web_m2x_options.create'])
|
||||||
|
var m2x_create = self.view.ir_options['web_m2x_options.create'] == "True"
|
||||||
|
|
||||||
if ((_.isUndefined(self.options.create) && _.isUndefined(self.view.ir_options['web_m2x_options.create'])) ||
|
if (!no_quick_create && (m2x_create_undef || m2x_create)) {
|
||||||
(_.isUndefined(self.options.create) && self.view.ir_options['web_m2x_options.create'] == 'True') ||
|
|
||||||
self.options.create) {
|
|
||||||
|
|
||||||
var raw_result = _(data.result).map(function(x) {return x[1];});
|
var raw_result = _(data.result).map(function(x) {return x[1];});
|
||||||
if (search_val.length > 0 && !_.include(raw_result, search_val)) {
|
if (search_val.length > 0 && !_.include(raw_result, search_val)) {
|
||||||
|
@ -319,10 +332,14 @@ openerp.web_m2x_options = function (instance) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// create...
|
// create...
|
||||||
|
var no_create_edit = (
|
||||||
|
self.options && (self.options.no_create ||
|
||||||
|
self.options.no_create_edit)
|
||||||
|
)
|
||||||
|
var m2x_create_edit_undef = _.isUndefined(self.view.ir_options['web_m2x_options.create_edit'])
|
||||||
|
var m2x_create_edit = self.view.ir_options['web_m2x_options.create_edit'] == "True"
|
||||||
|
|
||||||
if ((_.isUndefined(self.options.create_edit === 'undefined') && _.isUndefined(self.view.ir_options['web_m2x_options.create_edit'])) ||
|
if (!no_create_edit && (m2x_create_edit_undef || m2x_create_edit)) {
|
||||||
(_.isUndefined(self.options.create) && self.view.ir_options['web_m2x_options.create_edit'] == 'True') ||
|
|
||||||
self.options.create_edit) {
|
|
||||||
|
|
||||||
values.push({
|
values.push({
|
||||||
label: _t("Create and Edit..."),
|
label: _t("Create and Edit..."),
|
||||||
|
|
Loading…
Reference in New Issue