forked from Techsystech/web
[FIX] web_advanced_search: Make linter happy
parent
23adda6147
commit
0eb4a40552
|
@ -39,12 +39,21 @@ odoo.define("web_advanced_search", function (require) {
|
||||||
* An almost dummy search proposition, to use with domain widget
|
* An almost dummy search proposition, to use with domain widget
|
||||||
*/
|
*/
|
||||||
var AdvancedSearchProposition = Widget.extend({
|
var AdvancedSearchProposition = Widget.extend({
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @override
|
||||||
|
*/
|
||||||
init: function (parent, model, domain) {
|
init: function (parent, model, domain) {
|
||||||
this._super(parent);
|
this._super(parent);
|
||||||
this.model = model;
|
this.model = model;
|
||||||
this.domain = new Domain(domain);
|
this.domain = new Domain(domain);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Produce a filter descriptor for advanced searches.
|
||||||
|
*
|
||||||
|
* @returns {Object} In the format expected by `web.FilterMenu`.
|
||||||
|
*/
|
||||||
get_filter: function () {
|
get_filter: function () {
|
||||||
var domain_array = this.domain.toArray();
|
var domain_array = this.domain.toArray();
|
||||||
return {
|
return {
|
||||||
|
@ -74,6 +83,9 @@ odoo.define("web_advanced_search", function (require) {
|
||||||
"click .o_add_advanced_search": "advanced_search_open",
|
"click .o_add_advanced_search": "advanced_search_open",
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @override
|
||||||
|
*/
|
||||||
init: function () {
|
init: function () {
|
||||||
this._super.apply(this, arguments);
|
this._super.apply(this, arguments);
|
||||||
this.trigger_up("get_dataset");
|
this.trigger_up("get_dataset");
|
||||||
|
@ -131,6 +143,9 @@ odoo.define("web_advanced_search", function (require) {
|
||||||
className: "x2x_container",
|
className: "x2x_container",
|
||||||
attributes: {},
|
attributes: {},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @override
|
||||||
|
*/
|
||||||
init: function () {
|
init: function () {
|
||||||
this._super.apply(this, arguments);
|
this._super.apply(this, arguments);
|
||||||
// To make widgets work, we need a model and an empty record
|
// To make widgets work, we need a model and an empty record
|
||||||
|
@ -139,14 +154,14 @@ odoo.define("web_advanced_search", function (require) {
|
||||||
// Make equal and not equal appear 1st and 2nd
|
// Make equal and not equal appear 1st and 2nd
|
||||||
this.operators = _.sortBy(
|
this.operators = _.sortBy(
|
||||||
this.operators,
|
this.operators,
|
||||||
function(op) {
|
function (op) {
|
||||||
switch(op.value) {
|
switch (op.value) {
|
||||||
case "=":
|
case "=":
|
||||||
return -2;
|
return -2;
|
||||||
case "!=":
|
case "!=":
|
||||||
return -1;
|
return -1;
|
||||||
default:
|
default:
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
// Create dummy record with only the field the user is searching
|
// Create dummy record with only the field the user is searching
|
||||||
|
@ -154,7 +169,6 @@ odoo.define("web_advanced_search", function (require) {
|
||||||
fieldNames: [this.field.name],
|
fieldNames: [this.field.name],
|
||||||
modelName: this.dataset.model,
|
modelName: this.dataset.model,
|
||||||
context: this.dataset.context,
|
context: this.dataset.context,
|
||||||
// res_id: "virtual_0",
|
|
||||||
fields: {},
|
fields: {},
|
||||||
type: "record",
|
type: "record",
|
||||||
viewType: "default",
|
viewType: "default",
|
||||||
|
@ -176,6 +190,9 @@ odoo.define("web_advanced_search", function (require) {
|
||||||
this._fake_id = -1;
|
this._fake_id = -1;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @override
|
||||||
|
*/
|
||||||
start: function () {
|
start: function () {
|
||||||
var result = this._super.apply(this, arguments);
|
var result = this._super.apply(this, arguments);
|
||||||
// Render the initial widget
|
// Render the initial widget
|
||||||
|
@ -183,6 +200,9 @@ odoo.define("web_advanced_search", function (require) {
|
||||||
return result;
|
return result;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @override
|
||||||
|
*/
|
||||||
destroy: function () {
|
destroy: function () {
|
||||||
if (this._field_widget) {
|
if (this._field_widget) {
|
||||||
this._field_widget.destroy();
|
this._field_widget.destroy();
|
||||||
|
@ -192,19 +212,27 @@ odoo.define("web_advanced_search", function (require) {
|
||||||
return this._super.apply(this, arguments);
|
return this._super.apply(this, arguments);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get record object for current datapoint.
|
||||||
|
*
|
||||||
|
* @returns {Object}
|
||||||
|
*/
|
||||||
_get_record: function () {
|
_get_record: function () {
|
||||||
return this.model.get(this.datapoint_id);
|
return this.model.get(this.datapoint_id);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @override
|
||||||
|
*/
|
||||||
show_inputs: function ($operator) {
|
show_inputs: function ($operator) {
|
||||||
// Get widget class to be used
|
// Get widget class to be used
|
||||||
switch ($operator.val()) {
|
switch ($operator.val()) {
|
||||||
case "=":
|
case "=":
|
||||||
case "!=":
|
case "!=":
|
||||||
this._field_widget_name = "many2one";
|
this._field_widget_name = "many2one";
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
this._field_widget_name = "char";
|
this._field_widget_name = "char";
|
||||||
}
|
}
|
||||||
var _Widget = field_registry.get(this._field_widget_name);
|
var _Widget = field_registry.get(this._field_widget_name);
|
||||||
// Destroy previous widget, if any
|
// Destroy previous widget, if any
|
||||||
|
@ -234,6 +262,9 @@ odoo.define("web_advanced_search", function (require) {
|
||||||
return this._super.apply(this, arguments);
|
return this._super.apply(this, arguments);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @override
|
||||||
|
*/
|
||||||
_applyChanges: function (dataPointID, changes, event) {
|
_applyChanges: function (dataPointID, changes, event) {
|
||||||
// Make char updates look like valid x2one updates
|
// Make char updates look like valid x2one updates
|
||||||
if (_.isNaN(changes[this.field.name].id)) {
|
if (_.isNaN(changes[this.field.name].id)) {
|
||||||
|
@ -245,18 +276,24 @@ odoo.define("web_advanced_search", function (require) {
|
||||||
return FieldManagerMixin._applyChanges.apply(this, arguments);
|
return FieldManagerMixin._applyChanges.apply(this, arguments);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @override
|
||||||
|
*/
|
||||||
_confirmChange: function (id, fields, event) {
|
_confirmChange: function (id, fields, event) {
|
||||||
this.datapoint_id = id;
|
this.datapoint_id = id;
|
||||||
return this._field_widget.reset(this._get_record(), event);
|
return this._field_widget.reset(this._get_record(), event);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @override
|
||||||
|
*/
|
||||||
get_value: function () {
|
get_value: function () {
|
||||||
try {
|
try {
|
||||||
switch (this._field_widget_name) {
|
switch (this._field_widget_name) {
|
||||||
case "many2one":
|
case "many2one":
|
||||||
return this._field_widget.value.res_id;
|
return this._field_widget.value.res_id;
|
||||||
default:
|
default:
|
||||||
return this._field_widget.value.data.display_name;
|
return this._field_widget.value.data.display_name;
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
if (error.name === "TypeError") {
|
if (error.name === "TypeError") {
|
||||||
|
@ -265,11 +302,16 @@ odoo.define("web_advanced_search", function (require) {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Extract the field's value in a human-readable format.
|
||||||
|
*
|
||||||
|
* @override
|
||||||
|
*/
|
||||||
toString: function () {
|
toString: function () {
|
||||||
try {
|
try {
|
||||||
switch (this._field_widget_name) {
|
switch (this._field_widget_name) {
|
||||||
case "many2one":
|
case "many2one":
|
||||||
return this._field_widget.value.data.display_name;
|
return this._field_widget.value.data.display_name;
|
||||||
}
|
}
|
||||||
return this._super.apply(this, arguments);
|
return this._super.apply(this, arguments);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
|
Loading…
Reference in New Issue