[IMP] web_advanced_search: black, isort

pull/1909/head
Raf Ven 2021-04-28 14:39:01 +02:00
parent fe8e6f12f6
commit fd55007bfc
8 changed files with 57 additions and 38 deletions

View File

@ -0,0 +1 @@
../../../../web_advanced_search

View File

@ -0,0 +1,6 @@
import setuptools
setuptools.setup(
setup_requires=['setuptools-odoo'],
odoo_addon=True,
)

View File

@ -14,13 +14,13 @@ Advanced search
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3 :alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github
:target: https://github.com/OCA/web/tree/13.0/web_advanced_search :target: https://github.com/OCA/web/tree/14.0/web_advanced_search
:alt: OCA/web :alt: OCA/web
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/web-13-0/web-13-0-web_advanced_search :target: https://translation.odoo-community.org/projects/web-14-0/web-14-0-web_advanced_search
:alt: Translate me on Weblate :alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
:target: https://runbot.odoo-community.org/runbot/162/13.0 :target: https://runbot.odoo-community.org/runbot/162/14.0
:alt: Try me on Runbot :alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5| |badge1| |badge2| |badge3| |badge4| |badge5|
@ -58,7 +58,7 @@ this indefinetely, so it is possible to search for moves belonging
to a journal which has a user who is member of a certain group etc. to a journal which has a user who is member of a certain group etc.
Note also the domain dialog offers an editable preview in debug mode: Note also the domain dialog offers an editable preview in debug mode:
.. image:: https://raw.githubusercontent.com/OCA/web/13.0/web_advanced_search/static/img/debug_mode.png .. image:: https://raw.githubusercontent.com/OCA/web/14.0/web_advanced_search/static/img/debug_mode.png
Known issues / Roadmap Known issues / Roadmap
====================== ======================
@ -128,7 +128,7 @@ Bug Tracker
Bugs are tracked on `GitHub Issues <https://github.com/OCA/web/issues>`_. Bugs are tracked on `GitHub Issues <https://github.com/OCA/web/issues>`_.
In case of trouble, please check there if your issue has already been reported. In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed If you spotted it first, help us smashing it by providing a detailed and welcomed
`feedback <https://github.com/OCA/web/issues/new?body=module:%20web_advanced_search%0Aversion:%2013.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_. `feedback <https://github.com/OCA/web/issues/new?body=module:%20web_advanced_search%0Aversion:%2014.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
Do not contact contributors directly about support or help with technical issues. Do not contact contributors directly about support or help with technical issues.
@ -155,6 +155,10 @@ Contributors
* Jairo Llopis * Jairo Llopis
* Alexandre Díaz * Alexandre Díaz
* `DynApps NV <https://www.dynapps.be>`_:
* Raf Ven
Maintainers Maintainers
~~~~~~~~~~~ ~~~~~~~~~~~
@ -168,6 +172,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and mission is to support the collaborative development of Odoo features and
promote its widespread use. promote its widespread use.
This module is part of the `OCA/web <https://github.com/OCA/web/tree/13.0/web_advanced_search>`_ project on GitHub. This module is part of the `OCA/web <https://github.com/OCA/web/tree/14.0/web_advanced_search>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

View File

@ -5,7 +5,7 @@
{ {
"name": "Advanced search", "name": "Advanced search",
"version": "13.0.1.0.3", "version": "14.0.1.0.0",
"author": "Therp BV, " "Tecnativa, " "Odoo Community Association (OCA)", "author": "Therp BV, " "Tecnativa, " "Odoo Community Association (OCA)",
"license": "AGPL-3", "license": "AGPL-3",
"category": "Usability", "category": "Usability",

View File

@ -8,3 +8,7 @@
* Vicent Cubells * Vicent Cubells
* Jairo Llopis * Jairo Llopis
* Alexandre Díaz * Alexandre Díaz
* `DynApps NV <https://www.dynapps.be>`_:
* Raf Ven

View File

@ -367,7 +367,7 @@ ul.auto-toc {
!! This file is generated by oca-gen-addon-readme !! !! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !! !! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<p><a class="reference external" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external" href="https://github.com/OCA/web/tree/13.0/web_advanced_search"><img alt="OCA/web" src="https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github" /></a> <a class="reference external" href="https://translation.odoo-community.org/projects/web-13-0/web-13-0-web_advanced_search"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external" href="https://runbot.odoo-community.org/runbot/162/13.0"><img alt="Try me on Runbot" src="https://img.shields.io/badge/runbot-Try%20me-875A7B.png" /></a></p> <p><a class="reference external" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external" href="https://github.com/OCA/web/tree/14.0/web_advanced_search"><img alt="OCA/web" src="https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github" /></a> <a class="reference external" href="https://translation.odoo-community.org/projects/web-14-0/web-14-0-web_advanced_search"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external" href="https://runbot.odoo-community.org/runbot/162/14.0"><img alt="Try me on Runbot" src="https://img.shields.io/badge/runbot-Try%20me-875A7B.png" /></a></p>
<p>More powerful and easy to use search, especially for related fields.</p> <p>More powerful and easy to use search, especially for related fields.</p>
<p><strong>Table of contents</strong></p> <p><strong>Table of contents</strong></p>
<div class="contents local topic" id="contents"> <div class="contents local topic" id="contents">
@ -414,7 +414,7 @@ this indefinetely, so it is possible to search for moves belonging
to a journal which has a user who is member of a certain group etc.</p> to a journal which has a user who is member of a certain group etc.</p>
<dl class="docutils"> <dl class="docutils">
<dt>Note also the domain dialog offers an editable preview in debug mode:</dt> <dt>Note also the domain dialog offers an editable preview in debug mode:</dt>
<dd><img alt="https://raw.githubusercontent.com/OCA/web/13.0/web_advanced_search/static/img/debug_mode.png" class="first last" src="https://raw.githubusercontent.com/OCA/web/13.0/web_advanced_search/static/img/debug_mode.png" /> <dd><img alt="https://raw.githubusercontent.com/OCA/web/14.0/web_advanced_search/static/img/debug_mode.png" class="first last" src="https://raw.githubusercontent.com/OCA/web/14.0/web_advanced_search/static/img/debug_mode.png" />
</dd> </dd>
</dl> </dl>
</div> </div>
@ -482,7 +482,7 @@ search as expected too.</p>
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/web/issues">GitHub Issues</a>. <p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/web/issues">GitHub Issues</a>.
In case of trouble, please check there if your issue has already been reported. In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed If you spotted it first, help us smashing it by providing a detailed and welcomed
<a class="reference external" href="https://github.com/OCA/web/issues/new?body=module:%20web_advanced_search%0Aversion:%2013.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p> <a class="reference external" href="https://github.com/OCA/web/issues/new?body=module:%20web_advanced_search%0Aversion:%2014.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
<p>Do not contact contributors directly about support or help with technical issues.</p> <p>Do not contact contributors directly about support or help with technical issues.</p>
</div> </div>
<div class="section" id="credits"> <div class="section" id="credits">
@ -508,6 +508,10 @@ If you spotted it first, help us smashing it by providing a detailed and welcome
<li>Alexandre Díaz</li> <li>Alexandre Díaz</li>
</ul> </ul>
</li> </li>
<li><a class="reference external" href="https://www.dynapps.be">DynApps NV</a>:<ul>
<li>Raf Ven</li>
</ul>
</li>
</ul> </ul>
</div> </div>
<div class="section" id="maintainers"> <div class="section" id="maintainers">
@ -517,7 +521,7 @@ If you spotted it first, help us smashing it by providing a detailed and welcome
<p>OCA, or the Odoo Community Association, is a nonprofit organization whose <p>OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and mission is to support the collaborative development of Odoo features and
promote its widespread use.</p> promote its widespread use.</p>
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/web/tree/13.0/web_advanced_search">OCA/web</a> project on GitHub.</p> <p>This module is part of the <a class="reference external" href="https://github.com/OCA/web/tree/14.0/web_advanced_search">OCA/web</a> project on GitHub.</p>
<p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p> <p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
</div> </div>
</div> </div>

View File

@ -2,7 +2,7 @@
* Copyright 2020 Tecnativa - Alexandre Díaz * Copyright 2020 Tecnativa - Alexandre Díaz
* License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). */ * License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). */
odoo.define("web_advanced_search.human_domain", function() { odoo.define("web_advanced_search.human_domain", function () {
"use strict"; "use strict";
const join_mapping = { const join_mapping = {
@ -12,21 +12,21 @@ odoo.define("web_advanced_search.human_domain", function() {
}; };
const human_domain_methods = { const human_domain_methods = {
DomainTree: function() { DomainTree: function () {
const human_domains = []; const human_domains = [];
_.each(this.children, child => { _.each(this.children, (child) => {
human_domains.push(human_domain_methods[child.template].apply(child)); human_domains.push(human_domain_methods[child.template].apply(child));
}); });
return `(${human_domains.join(join_mapping[this.operator])})`; return `(${human_domains.join(join_mapping[this.operator])})`;
}, },
DomainSelector: function() { DomainSelector: function () {
const result = human_domain_methods.DomainTree.apply(this, arguments); const result = human_domain_methods.DomainTree.apply(this, arguments);
// Remove surrounding parenthesis // Remove surrounding parenthesis
return result.slice(1, -1); return result.slice(1, -1);
}, },
DomainLeaf: function() { DomainLeaf: function () {
const chain = []; const chain = [];
let operator = this.operator_mapping[this.operator], let operator = this.operator_mapping[this.operator],
value = `"${this.value}"`; value = `"${this.value}"`;

View File

@ -3,7 +3,7 @@
* Copyright 2020 Alexandre Díaz * Copyright 2020 Alexandre Díaz
* License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). */ * License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). */
odoo.define("web_advanced_search", function(require) { odoo.define("web_advanced_search", function (require) {
"use strict"; "use strict";
const config = require("web.config"); const config = require("web.config");
@ -25,7 +25,7 @@ odoo.define("web_advanced_search", function(require) {
/** /**
* @override * @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);
@ -38,7 +38,7 @@ odoo.define("web_advanced_search", function(require) {
* *
* @returns {Object} In the format expected by `web.FilterMenu`. * @returns {Object} In the format expected by `web.FilterMenu`.
*/ */
get_filter: function() { get_filter: function () {
return { return {
attrs: { attrs: {
domain: this.domain_array, domain: this.domain_array,
@ -49,7 +49,7 @@ odoo.define("web_advanced_search", function(require) {
}; };
}, },
_createDomainSelector: function() { _createDomainSelector: function () {
this.domain_selector = new DomainSelector( this.domain_selector = new DomainSelector(
this, this,
this.model, this.model,
@ -59,7 +59,7 @@ odoo.define("web_advanced_search", function(require) {
return this.domain_selector.appendTo(this.dummy_parent); return this.domain_selector.appendTo(this.dummy_parent);
}, },
destroy: function() { destroy: function () {
this.domain_selector.destroy(); this.domain_selector.destroy();
this.dummy_parent.remove(); this.dummy_parent.remove();
return this._super.apply(this, arguments); return this._super.apply(this, arguments);
@ -82,9 +82,9 @@ odoo.define("web_advanced_search", function(require) {
* *
* @override * @override
*/ */
start: function() { start: function () {
this._super.apply(this, arguments); this._super.apply(this, arguments);
this.$el.on("hide.bs.dropdown", function() { this.$el.on("hide.bs.dropdown", function () {
var $modal = $(".o_technical_modal.show"); var $modal = $(".o_technical_modal.show");
return !( return !(
($modal.length && !$modal.has($(this)).length) || ($modal.length && !$modal.has($(this)).length) ||
@ -96,7 +96,7 @@ odoo.define("web_advanced_search", function(require) {
/** /**
* @override * @override
*/ */
init: function() { init: function () {
this._super.apply(this, arguments); this._super.apply(this, arguments);
this._context = this.getParent().context; this._context = this.getParent().context;
@ -108,7 +108,7 @@ odoo.define("web_advanced_search", function(require) {
* *
* @returns {$.Deferred} The opening dialog itself. * @returns {$.Deferred} The opening dialog itself.
*/ */
advanced_search_open: function() { advanced_search_open: function () {
const domain_selector_dialog = new DomainSelectorDialog( const domain_selector_dialog = new DomainSelectorDialog(
this, this,
this._modelName, this._modelName,
@ -130,7 +130,7 @@ odoo.define("web_advanced_search", function(require) {
* *
* @param {OdooEvent} event A `domain_selected` event from the dialog. * @param {OdooEvent} event A `domain_selected` event from the dialog.
*/ */
advanced_search_commit: function(event) { advanced_search_commit: function (event) {
_.invoke(this.propositions, "destroy"); _.invoke(this.propositions, "destroy");
const proposition = new AdvancedSearchProposition( const proposition = new AdvancedSearchProposition(
this, this,
@ -140,7 +140,7 @@ odoo.define("web_advanced_search", function(require) {
// Necessary to ensure that the porposition have the 'fieldSelector' // Necessary to ensure that the porposition have the 'fieldSelector'
// is filled // is filled
_.defer( _.defer(
function() { function () {
this.propositions = [proposition]; this.propositions = [proposition];
this._commitSearch(); this._commitSearch();
}.bind(this) }.bind(this)
@ -166,13 +166,13 @@ odoo.define("web_advanced_search", function(require) {
/** /**
* @override * @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
FieldManagerMixin.init.call(this); FieldManagerMixin.init.call(this);
this.trigger_up("get_dataset"); this.trigger_up("get_dataset");
// Make equal and not equal appear 1st and 2nd // Make equal and not equal appear 1st and 2nd
this.operators = _.sortBy(this.operators, op => { this.operators = _.sortBy(this.operators, (op) => {
switch (op.value) { switch (op.value) {
case "=": case "=":
return -2; return -2;
@ -217,7 +217,7 @@ odoo.define("web_advanced_search", function(require) {
/** /**
* @override * @override
*/ */
start: function() { start: function () {
const result = this._super.apply(this, arguments); const result = this._super.apply(this, arguments);
// Render the initial widget // Render the initial widget
result.then($.proxy(this, "show_inputs", $("<input value='='/>"))); result.then($.proxy(this, "show_inputs", $("<input value='='/>")));
@ -227,7 +227,7 @@ odoo.define("web_advanced_search", function(require) {
/** /**
* @override * @override
*/ */
destroy: function() { destroy: function () {
if (this._field_widget) { if (this._field_widget) {
this._field_widget.destroy(); this._field_widget.destroy();
} }
@ -241,14 +241,14 @@ odoo.define("web_advanced_search", function(require) {
* *
* @returns {Object} * @returns {Object}
*/ */
_get_record: function() { _get_record: function () {
return this.model.get(this.datapoint_id); return this.model.get(this.datapoint_id);
}, },
/** /**
* @override * @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 "=":
@ -289,7 +289,7 @@ odoo.define("web_advanced_search", function(require) {
/** /**
* @override * @override
*/ */
_applyChanges: function(dataPointID, changes, event) { _applyChanges: function (dataPointID, changes, event) {
if (this._field_widget_name === "many2one") { if (this._field_widget_name === "many2one") {
// 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)) {
@ -301,7 +301,7 @@ odoo.define("web_advanced_search", function(require) {
return FieldManagerMixin._applyChanges.apply(this, arguments); return FieldManagerMixin._applyChanges.apply(this, arguments);
} }
return new Promise(resolve => { return new Promise((resolve) => {
resolve(); resolve();
}); });
}, },
@ -309,7 +309,7 @@ odoo.define("web_advanced_search", function(require) {
/** /**
* @override * @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);
}, },
@ -317,7 +317,7 @@ odoo.define("web_advanced_search", function(require) {
/** /**
* @override * @override
*/ */
get_value: function() { get_value: function () {
try { try {
switch (this._field_widget_name) { switch (this._field_widget_name) {
case "many2one": case "many2one":
@ -337,7 +337,7 @@ odoo.define("web_advanced_search", function(require) {
* *
* @override * @override
*/ */
toString: function() { toString: function () {
try { try {
switch (this._field_widget_name) { switch (this._field_widget_name) {
case "many2one": case "many2one":