From 8efe13ebec13391d5aca58785a652ab615936b58 Mon Sep 17 00:00:00 2001
From: Alexey Pelykh
Date: Wed, 11 Sep 2019 14:04:03 +0200
Subject: [PATCH 01/18] [ADD] web_widget_dropdown_dynamic
[UPD] Update web_widget_dropdown_dynamic.pot
[UPD] Update web_widget_dropdown_dynamic_example.pot
[UPD] README.rst
[ADD] icon.png
[UPD] README.rst
---
web_widget_dropdown_dynamic/README.rst | 114 +++++
web_widget_dropdown_dynamic/__init__.py | 1 +
web_widget_dropdown_dynamic/__manifest__.py | 20 +
.../i18n/web_widget_dropdown_dynamic.pot | 22 +
.../readme/CONTRIBUTORS.rst | 1 +
.../readme/DESCRIPTION.rst | 9 +
.../readme/ROADMAP.rst | 1 +
web_widget_dropdown_dynamic/readme/USAGE.rst | 24 +
.../static/description/icon.png | Bin 0 -> 9455 bytes
.../static/description/index.html | 465 ++++++++++++++++++
.../static/src/js/basic_model.js | 47 ++
.../static/src/js/field_dynamic_dropdown.js | 140 ++++++
.../web_widget_dropdown_dynamic_tests.js | 177 +++++++
.../templates/assets.xml | 19 +
14 files changed, 1040 insertions(+)
create mode 100644 web_widget_dropdown_dynamic/README.rst
create mode 100644 web_widget_dropdown_dynamic/__init__.py
create mode 100644 web_widget_dropdown_dynamic/__manifest__.py
create mode 100644 web_widget_dropdown_dynamic/i18n/web_widget_dropdown_dynamic.pot
create mode 100644 web_widget_dropdown_dynamic/readme/CONTRIBUTORS.rst
create mode 100644 web_widget_dropdown_dynamic/readme/DESCRIPTION.rst
create mode 100644 web_widget_dropdown_dynamic/readme/ROADMAP.rst
create mode 100644 web_widget_dropdown_dynamic/readme/USAGE.rst
create mode 100644 web_widget_dropdown_dynamic/static/description/icon.png
create mode 100644 web_widget_dropdown_dynamic/static/description/index.html
create mode 100644 web_widget_dropdown_dynamic/static/src/js/basic_model.js
create mode 100644 web_widget_dropdown_dynamic/static/src/js/field_dynamic_dropdown.js
create mode 100644 web_widget_dropdown_dynamic/static/tests/web_widget_dropdown_dynamic_tests.js
create mode 100644 web_widget_dropdown_dynamic/templates/assets.xml
diff --git a/web_widget_dropdown_dynamic/README.rst b/web_widget_dropdown_dynamic/README.rst
new file mode 100644
index 000000000..21d266392
--- /dev/null
+++ b/web_widget_dropdown_dynamic/README.rst
@@ -0,0 +1,114 @@
+=======================
+Dynamic Dropdown Widget
+=======================
+
+.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !! This file is generated by oca-gen-addon-readme !!
+ !! changes will be overwritten. !!
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
+ :target: https://odoo-community.org/page/development-status
+ :alt: Beta
+.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
+ :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
+ :alt: License: AGPL-3
+.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github
+ :target: https://github.com/OCA/web/tree/12.0/web_widget_dropdown_dynamic
+ :alt: OCA/web
+.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
+ :target: https://translation.odoo-community.org/projects/web-12-0/web-12-0-web_widget_dropdown_dynamic
+ :alt: Translate me on Weblate
+.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
+ :target: https://runbot.odoo-community.org/runbot/162/12.0
+ :alt: Try me on Runbot
+
+|badge1| |badge2| |badge3| |badge4| |badge5|
+
+Dynamic dropdown widget that supports resolving options from backend of:
+
+ * ``fields.Char``
+ * ``fields.Integer``
+ * ``fields.Selection``
+
+**NOTE:** This widget is not intended to *extend* ``fields.Selection``, but to
+filter selection values. For fully-dynamic set of options, use ``fields.Char``
+instead.
+
+**Table of contents**
+
+.. contents::
+ :local:
+
+Usage
+=====
+
+.. code-block:: python
+
+ @api.model
+ def method_name(self):
+ values = [
+ ('value_a', 'Title A'),
+ ]
+ if self.env.context.get('depending_on') == True:
+ values += [
+ ('value_b', 'Title B'),
+ ]
+ return values
+
+.. code-block:: xml
+
+
+
+
+Known issues / Roadmap
+======================
+
+ * In v13, ``$.when`` is going to become `Promise.resolve`
+
+Bug Tracker
+===========
+
+Bugs are tracked on `GitHub Issues `_.
+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
+`feedback `_.
+
+Do not contact contributors directly about support or help with technical issues.
+
+Credits
+=======
+
+Authors
+~~~~~~~
+
+* Brainbean Apps OU
+
+Contributors
+~~~~~~~~~~~~
+
+* Alexey Pelykh
+
+Maintainers
+~~~~~~~~~~~
+
+This module is maintained by the OCA.
+
+.. image:: https://odoo-community.org/logo.png
+ :alt: Odoo Community Association
+ :target: https://odoo-community.org
+
+OCA, or the Odoo Community Association, is a nonprofit organization whose
+mission is to support the collaborative development of Odoo features and
+promote its widespread use.
+
+This module is part of the `OCA/web `_ project on GitHub.
+
+You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/web_widget_dropdown_dynamic/__init__.py b/web_widget_dropdown_dynamic/__init__.py
new file mode 100644
index 000000000..c71289ab1
--- /dev/null
+++ b/web_widget_dropdown_dynamic/__init__.py
@@ -0,0 +1 @@
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
diff --git a/web_widget_dropdown_dynamic/__manifest__.py b/web_widget_dropdown_dynamic/__manifest__.py
new file mode 100644
index 000000000..8ede2ec51
--- /dev/null
+++ b/web_widget_dropdown_dynamic/__manifest__.py
@@ -0,0 +1,20 @@
+# Copyright 2019 Brainbean Apps (https://brainbeanapps.com)
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
+{
+ 'name': 'Dynamic Dropdown Widget',
+ 'summary': 'This module adds support for dynamic dropdown widget',
+ 'category': 'Web',
+ 'version': '12.0.1.0.0',
+ 'license': 'AGPL-3',
+ 'author':
+ 'Brainbean Apps OU, '
+ 'Odoo Community Association (OCA)',
+ 'website': 'https://github.com/OCA/web/',
+ 'depends': [
+ 'web',
+ ],
+ 'data': [
+ 'templates/assets.xml',
+ ],
+ 'installable': True,
+}
diff --git a/web_widget_dropdown_dynamic/i18n/web_widget_dropdown_dynamic.pot b/web_widget_dropdown_dynamic/i18n/web_widget_dropdown_dynamic.pot
new file mode 100644
index 000000000..673c92c99
--- /dev/null
+++ b/web_widget_dropdown_dynamic/i18n/web_widget_dropdown_dynamic.pot
@@ -0,0 +1,22 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * web_widget_dropdown_dynamic
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 12.0\n"
+"Report-Msgid-Bugs-To: \n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: web_widget_dropdown_dynamic
+#. openerp-web
+#: code:addons/web_widget_dropdown_dynamic/static/src/js/field_dynamic_dropdown.js:15
+#, python-format
+msgid "Dynamic Dropdown"
+msgstr ""
+
diff --git a/web_widget_dropdown_dynamic/readme/CONTRIBUTORS.rst b/web_widget_dropdown_dynamic/readme/CONTRIBUTORS.rst
new file mode 100644
index 000000000..1c6a35a1e
--- /dev/null
+++ b/web_widget_dropdown_dynamic/readme/CONTRIBUTORS.rst
@@ -0,0 +1 @@
+* Alexey Pelykh
diff --git a/web_widget_dropdown_dynamic/readme/DESCRIPTION.rst b/web_widget_dropdown_dynamic/readme/DESCRIPTION.rst
new file mode 100644
index 000000000..1ce39c5f7
--- /dev/null
+++ b/web_widget_dropdown_dynamic/readme/DESCRIPTION.rst
@@ -0,0 +1,9 @@
+Dynamic dropdown widget that supports resolving options from backend of:
+
+ * ``fields.Char``
+ * ``fields.Integer``
+ * ``fields.Selection``
+
+**NOTE:** This widget is not intended to *extend* ``fields.Selection``, but to
+filter selection values. For fully-dynamic set of options, use ``fields.Char``
+instead.
diff --git a/web_widget_dropdown_dynamic/readme/ROADMAP.rst b/web_widget_dropdown_dynamic/readme/ROADMAP.rst
new file mode 100644
index 000000000..7186b62cf
--- /dev/null
+++ b/web_widget_dropdown_dynamic/readme/ROADMAP.rst
@@ -0,0 +1 @@
+ * In v13, ``$.when`` is going to become `Promise.resolve`
diff --git a/web_widget_dropdown_dynamic/readme/USAGE.rst b/web_widget_dropdown_dynamic/readme/USAGE.rst
new file mode 100644
index 000000000..f30491bc4
--- /dev/null
+++ b/web_widget_dropdown_dynamic/readme/USAGE.rst
@@ -0,0 +1,24 @@
+.. code-block:: python
+
+ @api.model
+ def method_name(self):
+ values = [
+ ('value_a', 'Title A'),
+ ]
+ if self.env.context.get('depending_on') == True:
+ values += [
+ ('value_b', 'Title B'),
+ ]
+ return values
+
+.. code-block:: xml
+
+
+
diff --git a/web_widget_dropdown_dynamic/static/description/icon.png b/web_widget_dropdown_dynamic/static/description/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d
GIT binary patch
literal 9455
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
z
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
Xviia!U7SGha1wx#SCgwmn*{w2TRX*I
literal 0
HcmV?d00001
diff --git a/web_widget_dropdown_dynamic/static/description/index.html b/web_widget_dropdown_dynamic/static/description/index.html
new file mode 100644
index 000000000..d17e254a2
--- /dev/null
+++ b/web_widget_dropdown_dynamic/static/description/index.html
@@ -0,0 +1,465 @@
+
+
+
+
+
+
+Dynamic Dropdown Widget
+
+
+
+
+
Dynamic Dropdown Widget
+
+
+
+
Dynamic dropdown widget that supports resolving options from backend of:
+
+
+
fields.Char
+
fields.Integer
+
fields.Selection
+
+
+
NOTE: This widget is not intended to extendfields.Selection, but to
+filter selection values. For fully-dynamic set of options, use fields.Char
+instead.
Bugs are tracked on GitHub Issues.
+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
+feedback.
+
Do not contact contributors directly about support or help with technical issues.
OCA, or the Odoo Community Association, is a nonprofit organization whose
+mission is to support the collaborative development of Odoo features and
+promote its widespread use.
+
This module is part of the OCA/web project on GitHub.
Bugs are tracked on GitHub Issues.
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
-feedback.
OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
-
This module is part of the OCA/web project on GitHub.
+
This module is part of the OCA/web project on GitHub.
From cf814f68ad9ecf77992c61008ab7206cd3b44bd8 Mon Sep 17 00:00:00 2001
From: claudiagn
Date: Wed, 17 Feb 2021 12:45:40 +0000
Subject: [PATCH 05/18] Added translation using Weblate (Spanish)
---
web_widget_dropdown_dynamic/i18n/es.po | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
create mode 100644 web_widget_dropdown_dynamic/i18n/es.po
diff --git a/web_widget_dropdown_dynamic/i18n/es.po b/web_widget_dropdown_dynamic/i18n/es.po
new file mode 100644
index 000000000..c6d92ff4b
--- /dev/null
+++ b/web_widget_dropdown_dynamic/i18n/es.po
@@ -0,0 +1,22 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * web_widget_dropdown_dynamic
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 13.0\n"
+"Report-Msgid-Bugs-To: \n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#. module: web_widget_dropdown_dynamic
+#. openerp-web
+#: code:addons/web_widget_dropdown_dynamic/static/src/js/field_dynamic_dropdown.js:0
+#, python-format
+msgid "Dynamic Dropdown"
+msgstr ""
From ec5084302ae5ad9a83c8d4748c60f3bf1b7fa222 Mon Sep 17 00:00:00 2001
From: claudiagn
Date: Wed, 17 Feb 2021 12:45:56 +0000
Subject: [PATCH 06/18] Translated using Weblate (Spanish)
Currently translated at 100.0% (1 of 1 strings)
Translation: web-13.0/web-13.0-web_widget_dropdown_dynamic
Translate-URL: https://translation.odoo-community.org/projects/web-13-0/web-13-0-web_widget_dropdown_dynamic/es/
---
web_widget_dropdown_dynamic/i18n/es.po | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/web_widget_dropdown_dynamic/i18n/es.po b/web_widget_dropdown_dynamic/i18n/es.po
index c6d92ff4b..39577a6ef 100644
--- a/web_widget_dropdown_dynamic/i18n/es.po
+++ b/web_widget_dropdown_dynamic/i18n/es.po
@@ -6,17 +6,19 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 13.0\n"
"Report-Msgid-Bugs-To: \n"
-"Last-Translator: Automatically generated\n"
+"PO-Revision-Date: 2021-02-17 14:45+0000\n"
+"Last-Translator: claudiagn \n"
"Language-Team: none\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.3.2\n"
#. module: web_widget_dropdown_dynamic
#. openerp-web
#: code:addons/web_widget_dropdown_dynamic/static/src/js/field_dynamic_dropdown.js:0
#, python-format
msgid "Dynamic Dropdown"
-msgstr ""
+msgstr "Menú desplegable dinámico"
From db803eb8c87580f9480e1a94a68bb1e416fc297f Mon Sep 17 00:00:00 2001
From: Ronald Portier
Date: Fri, 28 May 2021 16:14:32 +0200
Subject: [PATCH 07/18] [IMP] web_widget_dropdown_dynamic: black, isort,
prettier
---
web_widget_dropdown_dynamic/__manifest__.py | 2 +-
.../static/src/js/basic_model.js | 4 +--
.../static/src/js/field_dynamic_dropdown.js | 26 +++++++++----------
.../web_widget_dropdown_dynamic_tests.js | 20 +++++++-------
4 files changed, 26 insertions(+), 26 deletions(-)
diff --git a/web_widget_dropdown_dynamic/__manifest__.py b/web_widget_dropdown_dynamic/__manifest__.py
index e556da8d1..879079b5b 100644
--- a/web_widget_dropdown_dynamic/__manifest__.py
+++ b/web_widget_dropdown_dynamic/__manifest__.py
@@ -8,7 +8,7 @@
"version": "13.0.1.0.0",
"license": "AGPL-3",
"author": "CorporateHub, Odoo Community Association (OCA)",
- "website": "https://github.com/OCA/web/",
+ "website": "https://github.com/OCA/web",
"depends": ["web"],
"data": ["templates/assets.xml"],
"installable": True,
diff --git a/web_widget_dropdown_dynamic/static/src/js/basic_model.js b/web_widget_dropdown_dynamic/static/src/js/basic_model.js
index f5b211e2c..b535a57e7 100644
--- a/web_widget_dropdown_dynamic/static/src/js/basic_model.js
+++ b/web_widget_dropdown_dynamic/static/src/js/basic_model.js
@@ -2,7 +2,7 @@
* Copyright 2019-2020 Brainbean Apps (https://brainbeanapps.com)
* License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
*/
-odoo.define("web_widget_dropdown_dynamic.basic_model", function(require) {
+odoo.define("web_widget_dropdown_dynamic.basic_model", function (require) {
"use strict";
var BasicModel = require("web.BasicModel");
@@ -20,7 +20,7 @@ odoo.define("web_widget_dropdown_dynamic.basic_model", function(require) {
* (for the given parameters), no RPC is done and the promise
* is resolved with the undefined value.
*/
- _fetchDynamicDropdownValues: function(record, fieldName, fieldInfo) {
+ _fetchDynamicDropdownValues: function (record, fieldName, fieldInfo) {
var model = fieldInfo.options.model || record.model;
var method = fieldInfo.values || fieldInfo.options.values;
if (!method) {
diff --git a/web_widget_dropdown_dynamic/static/src/js/field_dynamic_dropdown.js b/web_widget_dropdown_dynamic/static/src/js/field_dynamic_dropdown.js
index 987793ba5..18cc876bd 100644
--- a/web_widget_dropdown_dynamic/static/src/js/field_dynamic_dropdown.js
+++ b/web_widget_dropdown_dynamic/static/src/js/field_dynamic_dropdown.js
@@ -2,7 +2,7 @@
* Copyright 2019 Brainbean Apps (https://brainbeanapps.com)
* License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
*/
-odoo.define("web_widget_dropdown_dynamic.field_dynamic_dropdown", function(require) {
+odoo.define("web_widget_dropdown_dynamic.field_dynamic_dropdown", function (require) {
"use strict";
var core = require("web.core");
@@ -22,7 +22,7 @@ odoo.define("web_widget_dropdown_dynamic.field_dynamic_dropdown", function(requi
/**
* @override
*/
- init: function() {
+ init: function () {
this._super.apply(this, arguments);
this._setValues();
},
@@ -35,13 +35,13 @@ odoo.define("web_widget_dropdown_dynamic.field_dynamic_dropdown", function(requi
* @override
* @returns {jQuery}
*/
- getFocusableElement: function() {
+ getFocusableElement: function () {
return this.$el.is("select") ? this.$el : $();
},
/**
* @override
*/
- isSet: function() {
+ isSet: function () {
return this.value !== false;
},
/**
@@ -50,7 +50,7 @@ odoo.define("web_widget_dropdown_dynamic.field_dynamic_dropdown", function(requi
*
* @override
*/
- updateModifiersValue: function() {
+ updateModifiersValue: function () {
this._super.apply(this, arguments);
if (!this.attrs.modifiersValue.invisible && this.mode !== "readonly") {
this._setValues();
@@ -66,14 +66,14 @@ odoo.define("web_widget_dropdown_dynamic.field_dynamic_dropdown", function(requi
* @override
* @private
*/
- _formatValue: function(value) {
+ _formatValue: function (value) {
var options = _.extend(
{},
this.nodeOptions,
{data: this.recordData},
this.formatOptions
);
- var formattedValue = _.find(this.values, function(option) {
+ var formattedValue = _.find(this.values, function (option) {
return option[0] === value;
});
if (!formattedValue) {
@@ -89,7 +89,7 @@ odoo.define("web_widget_dropdown_dynamic.field_dynamic_dropdown", function(requi
* @override
* @private
*/
- _renderEdit: function() {
+ _renderEdit: function () {
this.$el.empty();
for (var i = 0; i < this.values.length; i++) {
this.$el.append(
@@ -105,13 +105,13 @@ odoo.define("web_widget_dropdown_dynamic.field_dynamic_dropdown", function(requi
* @override
* @private
*/
- _renderReadonly: function() {
+ _renderReadonly: function () {
this.$el.empty().text(this._formatValue(this.value));
},
/**
* @override
*/
- _reset: function() {
+ _reset: function () {
this._super.apply(this, arguments);
this._setValues();
},
@@ -120,8 +120,8 @@ odoo.define("web_widget_dropdown_dynamic.field_dynamic_dropdown", function(requi
*
* @private
*/
- _setValues: function() {
- this.values = _.reject(this.record.specialData[this.name], function(v) {
+ _setValues: function () {
+ this.values = _.reject(this.record.specialData[this.name], function (v) {
return v[0] === false && v[1] === "";
});
if (!this.attrs.modifiersValue || !this.attrs.modifiersValue.required) {
@@ -138,7 +138,7 @@ odoo.define("web_widget_dropdown_dynamic.field_dynamic_dropdown", function(requi
/**
* @private
*/
- _onChange: function() {
+ _onChange: function () {
var value = JSON.parse(this.$el.val());
this._setValue(value.toString());
},
diff --git a/web_widget_dropdown_dynamic/static/tests/web_widget_dropdown_dynamic_tests.js b/web_widget_dropdown_dynamic/static/tests/web_widget_dropdown_dynamic_tests.js
index f51b619cd..494e64e4e 100644
--- a/web_widget_dropdown_dynamic/static/tests/web_widget_dropdown_dynamic_tests.js
+++ b/web_widget_dropdown_dynamic/static/tests/web_widget_dropdown_dynamic_tests.js
@@ -1,4 +1,4 @@
-odoo.define("web_widget_dropdown_dynamic.web_widget_dropdown_dynamic_tests", function(
+odoo.define("web_widget_dropdown_dynamic.web_widget_dropdown_dynamic_tests", function (
require
) {
"use strict";
@@ -8,8 +8,8 @@ odoo.define("web_widget_dropdown_dynamic.web_widget_dropdown_dynamic_tests", fun
var FormView = require("web.FormView");
var testUtils = require("web.test_utils");
- QUnit.module("web_widget_dropdown_dynamic", {}, function() {
- QUnit.test("values are fetched w/o context (char)", async function(assert) {
+ QUnit.module("web_widget_dropdown_dynamic", {}, function () {
+ QUnit.test("values are fetched w/o context (char)", async function (assert) {
assert.expect(2);
var form = await testUtils.createView({
@@ -27,7 +27,7 @@ odoo.define("web_widget_dropdown_dynamic.web_widget_dropdown_dynamic_tests", fun
"",
- mockRPC: function(route, args) {
+ mockRPC: function (route, args) {
if (args.method === "_get_test_field_values") {
return Promise.resolve([["value", "Title"]]);
}
@@ -41,7 +41,7 @@ odoo.define("web_widget_dropdown_dynamic.web_widget_dropdown_dynamic_tests", fun
form.destroy();
});
- QUnit.test("values are fetched w/o context (integer)", async function(assert) {
+ QUnit.test("values are fetched w/o context (integer)", async function (assert) {
assert.expect(2);
var form = await testUtils.createView({
@@ -59,7 +59,7 @@ odoo.define("web_widget_dropdown_dynamic.web_widget_dropdown_dynamic_tests", fun
"",
- mockRPC: function(route, args) {
+ mockRPC: function (route, args) {
if (args.method === "_get_test_field_values") {
return Promise.resolve([[0, "Title"]]);
}
@@ -73,7 +73,7 @@ odoo.define("web_widget_dropdown_dynamic.web_widget_dropdown_dynamic_tests", fun
form.destroy();
});
- QUnit.test("values are fetched w/o context (selection)", async function(
+ QUnit.test("values are fetched w/o context (selection)", async function (
assert
) {
assert.expect(2);
@@ -93,7 +93,7 @@ odoo.define("web_widget_dropdown_dynamic.web_widget_dropdown_dynamic_tests", fun
"",
- mockRPC: function(route, args) {
+ mockRPC: function (route, args) {
if (args.method === "_get_test_field_values") {
return Promise.resolve([["value", "Title"]]);
}
@@ -107,7 +107,7 @@ odoo.define("web_widget_dropdown_dynamic.web_widget_dropdown_dynamic_tests", fun
form.destroy();
});
- QUnit.test("values are fetched with changing context", async function(assert) {
+ QUnit.test("values are fetched with changing context", async function (assert) {
assert.expect(6);
var form = await testUtils.createView({
@@ -127,7 +127,7 @@ odoo.define("web_widget_dropdown_dynamic.web_widget_dropdown_dynamic_tests", fun
'' +
'' +
"",
- mockRPC: function(route, args) {
+ mockRPC: function (route, args) {
if (args.method === "_get_test_field_values") {
if (args.kwargs.context.step === "step-1") {
return Promise.resolve([["value", "Title"]]);
From d54d877e508971bc6846b029c359792a26fac326 Mon Sep 17 00:00:00 2001
From: Ronald Portier
Date: Fri, 28 May 2021 16:19:56 +0200
Subject: [PATCH 08/18] [MIG] web_widget_dropdown_dynamic: Migration to 14.0
---
web_widget_dropdown_dynamic/README.rst | 14 +++++++++-----
web_widget_dropdown_dynamic/__manifest__.py | 2 +-
.../i18n/web_widget_dropdown_dynamic.pot | 2 +-
.../readme/CONTRIBUTORS.rst | 4 ++++
.../static/description/index.html | 10 +++++++---
5 files changed, 22 insertions(+), 10 deletions(-)
diff --git a/web_widget_dropdown_dynamic/README.rst b/web_widget_dropdown_dynamic/README.rst
index 182360991..5a7ee5b31 100644
--- a/web_widget_dropdown_dynamic/README.rst
+++ b/web_widget_dropdown_dynamic/README.rst
@@ -14,13 +14,13 @@ Dynamic Dropdown Widget
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github
- :target: https://github.com/OCA/web/tree/13.0/web_widget_dropdown_dynamic
+ :target: https://github.com/OCA/web/tree/14.0/web_widget_dropdown_dynamic
:alt: OCA/web
.. |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_widget_dropdown_dynamic
+ :target: https://translation.odoo-community.org/projects/web-14-0/web-14-0-web_widget_dropdown_dynamic
:alt: Translate me on Weblate
.. |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
|badge1| |badge2| |badge3| |badge4| |badge5|
@@ -74,7 +74,7 @@ Bug Tracker
Bugs are tracked on `GitHub Issues `_.
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
-`feedback `_.
+`feedback `_.
Do not contact contributors directly about support or help with technical issues.
@@ -93,6 +93,10 @@ Contributors
* Alexey Pelykh
+* `Therp BV `__
+
+ * Ronald Portier
+
Maintainers
~~~~~~~~~~~
@@ -106,6 +110,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
-This module is part of the `OCA/web `_ project on GitHub.
+This module is part of the `OCA/web `_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/web_widget_dropdown_dynamic/__manifest__.py b/web_widget_dropdown_dynamic/__manifest__.py
index 879079b5b..56add7f08 100644
--- a/web_widget_dropdown_dynamic/__manifest__.py
+++ b/web_widget_dropdown_dynamic/__manifest__.py
@@ -5,7 +5,7 @@
"name": "Dynamic Dropdown Widget",
"summary": "This module adds support for dynamic dropdown widget",
"category": "Web",
- "version": "13.0.1.0.0",
+ "version": "14.0.1.0.0",
"license": "AGPL-3",
"author": "CorporateHub, Odoo Community Association (OCA)",
"website": "https://github.com/OCA/web",
diff --git a/web_widget_dropdown_dynamic/i18n/web_widget_dropdown_dynamic.pot b/web_widget_dropdown_dynamic/i18n/web_widget_dropdown_dynamic.pot
index 1472b629c..db119581c 100644
--- a/web_widget_dropdown_dynamic/i18n/web_widget_dropdown_dynamic.pot
+++ b/web_widget_dropdown_dynamic/i18n/web_widget_dropdown_dynamic.pot
@@ -4,7 +4,7 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 13.0\n"
+"Project-Id-Version: Odoo Server 14.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: \n"
"Language-Team: \n"
diff --git a/web_widget_dropdown_dynamic/readme/CONTRIBUTORS.rst b/web_widget_dropdown_dynamic/readme/CONTRIBUTORS.rst
index 724bc1d03..fc2a1a3c6 100644
--- a/web_widget_dropdown_dynamic/readme/CONTRIBUTORS.rst
+++ b/web_widget_dropdown_dynamic/readme/CONTRIBUTORS.rst
@@ -1,3 +1,7 @@
* `CorporateHub `__
* Alexey Pelykh
+
+* `Therp BV `__
+
+ * Ronald Portier
diff --git a/web_widget_dropdown_dynamic/static/description/index.html b/web_widget_dropdown_dynamic/static/description/index.html
index 8da1257d4..983b6b168 100644
--- a/web_widget_dropdown_dynamic/static/description/index.html
+++ b/web_widget_dropdown_dynamic/static/description/index.html
@@ -367,7 +367,7 @@ ul.auto-toc {
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-
+
Dynamic dropdown widget that supports resolving options from backend of:
@@ -423,7 +423,7 @@ instead.
Bugs are tracked on GitHub Issues.
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
-feedback.
@@ -450,7 +454,7 @@ If you spotted it first, help us smashing it by providing a detailed and welcome
OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
-
This module is part of the OCA/web project on GitHub.
+
This module is part of the OCA/web project on GitHub.
Dynamic dropdown widget that supports resolving options from backend of:
@@ -423,7 +423,7 @@ instead.
Bugs are tracked on GitHub Issues.
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
-feedback.
@@ -454,7 +455,7 @@ If you spotted it first, help us smashing it by providing a detailed and welcome
OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
-
This module is part of the OCA/web project on GitHub.
+
This module is part of the OCA/web project on GitHub.