[IMP] web_widget_dropdown_dynamic: pre-commit auto fixes

pull/3032/head
Carlos Roca 2024-08-12 08:48:45 +02:00 committed by Bhavesh Heliconia
parent 4d0684467e
commit 9e415ab1a1
10 changed files with 147 additions and 137 deletions

View File

@ -17,26 +17,26 @@ Dynamic Dropdown Widget
: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/16.0/web_widget_dropdown_dynamic :target: https://github.com/OCA/web/tree/17.0/web_widget_dropdown_dynamic
: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-16-0/web-16-0-web_widget_dropdown_dynamic :target: https://translation.odoo-community.org/projects/web-17-0/web-17-0-web_widget_dropdown_dynamic
:alt: Translate me on Weblate :alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png .. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/web&target_branch=16.0 :target: https://runboat.odoo-community.org/builds?repo=OCA/web&target_branch=17.0
:alt: Try me on Runboat :alt: Try me on Runboat
|badge1| |badge2| |badge3| |badge4| |badge5| |badge1| |badge2| |badge3| |badge4| |badge5|
Dynamic dropdown widget that supports resolving options from backend of: Dynamic dropdown widget that supports resolving options from backend of:
* ``fields.Char`` - ``fields.Char``
* ``fields.Integer`` - ``fields.Integer``
* ``fields.Selection`` - ``fields.Selection``
**NOTE:** This widget is not intended to *extend* ``fields.Selection``, but to **NOTE:** This widget is not intended to *extend* ``fields.Selection``,
filter selection values. For fully-dynamic set of options, use ``fields.Char`` but to filter selection values. For fully-dynamic set of options, use
instead. ``fields.Char`` instead.
**Table of contents** **Table of contents**
@ -46,7 +46,7 @@ instead.
Usage Usage
===== =====
.. code-block:: python .. code:: python
@api.model @api.model
def method_name(self): def method_name(self):
@ -59,7 +59,7 @@ Usage
] ]
return values return values
.. code-block:: xml .. code:: xml
<field <field
name="other_field" name="other_field"
@ -77,7 +77,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 to smash it by providing a detailed and welcomed If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/web/issues/new?body=module:%20web_widget_dropdown_dynamic%0Aversion:%2016.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_widget_dropdown_dynamic%0Aversion:%2017.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.
@ -85,33 +85,35 @@ Credits
======= =======
Authors Authors
~~~~~~~ -------
* CorporateHub * CorporateHub
Contributors Contributors
~~~~~~~~~~~~ ------------
* `CorporateHub <https://corporatehub.eu/>`__ - `CorporateHub <https://corporatehub.eu/>`__
* Alexey Pelykh <alexey.pelykh@corphub.eu> - Alexey Pelykh <alexey.pelykh@corphub.eu>
* `Therp BV <https://therp.nl/>`__ - `Therp BV <https://therp.nl/>`__
* Ronald Portier <ronald@therp.nl> - Ronald Portier <ronald@therp.nl>
* Thanakrit Pintana <thanakrit.p39@gmail.com> - Thanakrit Pintana <thanakrit.p39@gmail.com>
* `Trobz <https://trobz.com>`_:
* Son Ho <sonho@trobz.com> - `Trobz <https://trobz.com>`__:
- Son Ho <sonho@trobz.com>
Other credits Other credits
~~~~~~~~~~~~~ -------------
The migration of this module from 15.0 to 16.0 was financially supported by Camptocamp The migration of this module from 15.0 to 16.0 was financially supported
by Camptocamp
Maintainers Maintainers
~~~~~~~~~~~ -----------
This module is maintained by the OCA. This module is maintained by the OCA.
@ -123,6 +125,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/16.0/web_widget_dropdown_dynamic>`_ project on GitHub. This module is part of the `OCA/web <https://github.com/OCA/web/tree/17.0/web_widget_dropdown_dynamic>`_ 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

@ -0,0 +1,3 @@
[build-system]
requires = ["whool"]
build-backend = "whool.buildapi"

View File

@ -0,0 +1,13 @@
- [CorporateHub](https://corporatehub.eu/)
- Alexey Pelykh \<<alexey.pelykh@corphub.eu>\>
- [Therp BV](https://therp.nl/)
- Ronald Portier \<<ronald@therp.nl>\>
- Thanakrit Pintana \<<thanakrit.p39@gmail.com>\>
- [Trobz](https://trobz.com):
> - Son Ho \<<sonho@trobz.com>\>

View File

@ -1,12 +0,0 @@
* `CorporateHub <https://corporatehub.eu/>`__
* Alexey Pelykh <alexey.pelykh@corphub.eu>
* `Therp BV <https://therp.nl/>`__
* Ronald Portier <ronald@therp.nl>
* Thanakrit Pintana <thanakrit.p39@gmail.com>
* `Trobz <https://trobz.com>`_:
* Son Ho <sonho@trobz.com>

View File

@ -1 +1,2 @@
The migration of this module from 15.0 to 16.0 was financially supported by Camptocamp The migration of this module from 15.0 to 16.0 was financially supported
by Camptocamp

View File

@ -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.

View File

@ -1,9 +0,0 @@
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.

View File

@ -0,0 +1,24 @@
``` 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
```
``` xml
<field
name="other_field"
/>
<field
name="char_field"
widget="dynamic_dropdown"
options="{'values':'method_name'}"
context="{'depending_on': other_field}"
/>
```

View File

@ -1,24 +0,0 @@
.. 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
<field
name="other_field"
/>
<field
name="char_field"
widget="dynamic_dropdown"
options="{'values':'method_name'}"
context="{'depending_on': other_field}"
/>

View File

@ -1,20 +1,20 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils: http://docutils.sourceforge.net/" /> <meta name="generator" content="Docutils: https://docutils.sourceforge.io/" />
<title>Dynamic Dropdown Widget</title> <title>Dynamic Dropdown Widget</title>
<style type="text/css"> <style type="text/css">
/* /*
:Author: David Goodger (goodger@python.org) :Author: David Goodger (goodger@python.org)
:Id: $Id: html4css1.css 7952 2016-07-26 18:15:59Z milde $ :Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $
:Copyright: This stylesheet has been placed in the public domain. :Copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils. Default cascading style sheet for the HTML output of Docutils.
Despite the name, some widely supported CSS2 features are used.
See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
customize this style sheet. customize this style sheet.
*/ */
@ -275,7 +275,7 @@ pre.literal-block, pre.doctest-block, pre.math, pre.code {
margin-left: 2em ; margin-left: 2em ;
margin-right: 2em } margin-right: 2em }
pre.code .ln { color: grey; } /* line numbers */ pre.code .ln { color: gray; } /* line numbers */
pre.code, code { background-color: #eeeeee } pre.code, code { background-color: #eeeeee }
pre.code .comment, code .comment { color: #5C6576 } pre.code .comment, code .comment { color: #5C6576 }
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold } pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
@ -301,7 +301,7 @@ span.option {
span.pre { span.pre {
white-space: pre } white-space: pre }
span.problematic { span.problematic, pre.problematic {
color: red } color: red }
span.section-subtitle { span.section-subtitle {
@ -369,7 +369,7 @@ ul.auto-toc {
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:e2b8eb236b4dc206f3a4ab9b5932f86c2e46c33bdac31c385725384f3fe970e3 !! source digest: sha256:e2b8eb236b4dc206f3a4ab9b5932f86c2e46c33bdac31c385725384f3fe970e3
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<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/16.0/web_widget_dropdown_dynamic"><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-16-0/web-16-0-web_widget_dropdown_dynamic"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external" href="https://runboat.odoo-community.org/builds?repo=OCA/web&amp;target_branch=16.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p> <p><a class="reference external image-reference" 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 image-reference" 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 image-reference" href="https://github.com/OCA/web/tree/17.0/web_widget_dropdown_dynamic"><img alt="OCA/web" src="https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/web-17-0/web-17-0-web_widget_dropdown_dynamic"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/web&amp;target_branch=17.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
<p>Dynamic dropdown widget that supports resolving options from backend of:</p> <p>Dynamic dropdown widget that supports resolving options from backend of:</p>
<blockquote> <blockquote>
<ul class="simple"> <ul class="simple">
@ -378,67 +378,67 @@ ul.auto-toc {
<li><tt class="docutils literal">fields.Selection</tt></li> <li><tt class="docutils literal">fields.Selection</tt></li>
</ul> </ul>
</blockquote> </blockquote>
<p><strong>NOTE:</strong> This widget is not intended to <em>extend</em> <tt class="docutils literal">fields.Selection</tt>, but to <p><strong>NOTE:</strong> This widget is not intended to <em>extend</em> <tt class="docutils literal">fields.Selection</tt>,
filter selection values. For fully-dynamic set of options, use <tt class="docutils literal">fields.Char</tt> but to filter selection values. For fully-dynamic set of options, use
instead.</p> <tt class="docutils literal">fields.Char</tt> instead.</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">
<ul class="simple"> <ul class="simple">
<li><a class="reference internal" href="#usage" id="id1">Usage</a></li> <li><a class="reference internal" href="#usage" id="toc-entry-1">Usage</a></li>
<li><a class="reference internal" href="#bug-tracker" id="id2">Bug Tracker</a></li> <li><a class="reference internal" href="#bug-tracker" id="toc-entry-2">Bug Tracker</a></li>
<li><a class="reference internal" href="#credits" id="id3">Credits</a><ul> <li><a class="reference internal" href="#credits" id="toc-entry-3">Credits</a><ul>
<li><a class="reference internal" href="#authors" id="id4">Authors</a></li> <li><a class="reference internal" href="#authors" id="toc-entry-4">Authors</a></li>
<li><a class="reference internal" href="#contributors" id="id5">Contributors</a></li> <li><a class="reference internal" href="#contributors" id="toc-entry-5">Contributors</a></li>
<li><a class="reference internal" href="#other-credits" id="id6">Other credits</a></li> <li><a class="reference internal" href="#other-credits" id="toc-entry-6">Other credits</a></li>
<li><a class="reference internal" href="#maintainers" id="id7">Maintainers</a></li> <li><a class="reference internal" href="#maintainers" id="toc-entry-7">Maintainers</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
</div> </div>
<div class="section" id="usage"> <div class="section" id="usage">
<h1><a class="toc-backref" href="#id1">Usage</a></h1> <h1><a class="toc-backref" href="#toc-entry-1">Usage</a></h1>
<pre class="code python literal-block"> <pre class="code python literal-block">
<span class="nd">&#64;api</span><span class="o">.</span><span class="n">model</span> <span class="nd">&#64;api</span><span class="o">.</span><span class="n">model</span><span class="w">
<span class="k">def</span> <span class="nf">method_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> </span><span class="k">def</span> <span class="nf">method_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span><span class="w">
<span class="n">values</span> <span class="o">=</span> <span class="p">[</span> </span> <span class="n">values</span> <span class="o">=</span> <span class="p">[</span><span class="w">
<span class="p">(</span><span class="s1">'value_a'</span><span class="p">,</span> <span class="s1">'Title A'</span><span class="p">),</span> </span> <span class="p">(</span><span class="s1">'value_a'</span><span class="p">,</span> <span class="s1">'Title A'</span><span class="p">),</span><span class="w">
<span class="p">]</span> </span> <span class="p">]</span><span class="w">
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">env</span><span class="o">.</span><span class="n">context</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'depending_on'</span><span class="p">)</span> <span class="o">==</span> <span class="kc">True</span><span class="p">:</span> </span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">env</span><span class="o">.</span><span class="n">context</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'depending_on'</span><span class="p">)</span> <span class="o">==</span> <span class="kc">True</span><span class="p">:</span><span class="w">
<span class="n">values</span> <span class="o">+=</span> <span class="p">[</span> </span> <span class="n">values</span> <span class="o">+=</span> <span class="p">[</span><span class="w">
<span class="p">(</span><span class="s1">'value_b'</span><span class="p">,</span> <span class="s1">'Title B'</span><span class="p">),</span> </span> <span class="p">(</span><span class="s1">'value_b'</span><span class="p">,</span> <span class="s1">'Title B'</span><span class="p">),</span><span class="w">
<span class="p">]</span> </span> <span class="p">]</span><span class="w">
<span class="k">return</span> <span class="n">values</span> </span> <span class="k">return</span> <span class="n">values</span>
</pre> </pre>
<pre class="code xml literal-block"> <pre class="code xml literal-block">
<span class="nt">&lt;field</span> <span class="nt">&lt;field</span><span class="w">
<span class="na">name=</span><span class="s">&quot;other_field&quot;</span> </span><span class="na">name=</span><span class="s">&quot;other_field&quot;</span><span class="w">
<span class="nt">/&gt;</span> </span><span class="nt">/&gt;</span><span class="w">
<span class="nt">&lt;field</span> </span><span class="nt">&lt;field</span><span class="w">
<span class="na">name=</span><span class="s">&quot;char_field&quot;</span> </span><span class="na">name=</span><span class="s">&quot;char_field&quot;</span><span class="w">
<span class="na">widget=</span><span class="s">&quot;dynamic_dropdown&quot;</span> </span><span class="na">widget=</span><span class="s">&quot;dynamic_dropdown&quot;</span><span class="w">
<span class="na">options=</span><span class="s">&quot;{'values':'method_name'}&quot;</span> </span><span class="na">options=</span><span class="s">&quot;{'values':'method_name'}&quot;</span><span class="w">
<span class="na">context=</span><span class="s">&quot;{'depending_on': other_field}&quot;</span> </span><span class="na">context=</span><span class="s">&quot;{'depending_on': other_field}&quot;</span><span class="w">
<span class="nt">/&gt;</span> </span><span class="nt">/&gt;</span>
</pre> </pre>
</div> </div>
<div class="section" id="bug-tracker"> <div class="section" id="bug-tracker">
<h1><a class="toc-backref" href="#id2">Bug Tracker</a></h1> <h1><a class="toc-backref" href="#toc-entry-2">Bug Tracker</a></h1>
<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 to smash it by providing a detailed and welcomed If you spotted it first, help us to smash it by providing a detailed and welcomed
<a class="reference external" href="https://github.com/OCA/web/issues/new?body=module:%20web_widget_dropdown_dynamic%0Aversion:%2016.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_widget_dropdown_dynamic%0Aversion:%2017.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">
<h1><a class="toc-backref" href="#id3">Credits</a></h1> <h1><a class="toc-backref" href="#toc-entry-3">Credits</a></h1>
<div class="section" id="authors"> <div class="section" id="authors">
<h2><a class="toc-backref" href="#id4">Authors</a></h2> <h2><a class="toc-backref" href="#toc-entry-4">Authors</a></h2>
<ul class="simple"> <ul class="simple">
<li>CorporateHub</li> <li>CorporateHub</li>
</ul> </ul>
</div> </div>
<div class="section" id="contributors"> <div class="section" id="contributors">
<h2><a class="toc-backref" href="#id5">Contributors</a></h2> <h2><a class="toc-backref" href="#toc-entry-5">Contributors</a></h2>
<ul> <ul>
<li><p class="first"><a class="reference external" href="https://corporatehub.eu/">CorporateHub</a></p> <li><p class="first"><a class="reference external" href="https://corporatehub.eu/">CorporateHub</a></p>
<ul class="simple"> <ul class="simple">
@ -462,17 +462,20 @@ If you spotted it first, help us to smash it by providing a detailed and welcome
</ul> </ul>
</div> </div>
<div class="section" id="other-credits"> <div class="section" id="other-credits">
<h2><a class="toc-backref" href="#id6">Other credits</a></h2> <h2><a class="toc-backref" href="#toc-entry-6">Other credits</a></h2>
<p>The migration of this module from 15.0 to 16.0 was financially supported by Camptocamp</p> <p>The migration of this module from 15.0 to 16.0 was financially supported
by Camptocamp</p>
</div> </div>
<div class="section" id="maintainers"> <div class="section" id="maintainers">
<h2><a class="toc-backref" href="#id7">Maintainers</a></h2> <h2><a class="toc-backref" href="#toc-entry-7">Maintainers</a></h2>
<p>This module is maintained by the OCA.</p> <p>This module is maintained by the OCA.</p>
<a class="reference external image-reference" href="https://odoo-community.org"><img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" /></a> <a class="reference external image-reference" href="https://odoo-community.org">
<img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" />
</a>
<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/16.0/web_widget_dropdown_dynamic">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/17.0/web_widget_dropdown_dynamic">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>