3
0
Fork 0

[IMP] web_m2x_options: black, isort, prettier

17.0
manu 2024-07-22 17:06:23 +02:00
parent 020aa86f4d
commit f6edfac2f9
11 changed files with 270 additions and 206 deletions

View File

@ -17,27 +17,28 @@ web_m2x_options
: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_m2x_options :target: https://github.com/OCA/web/tree/17.0/web_m2x_options
: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_m2x_options :target: https://translation.odoo-community.org/projects/web-17-0/web-17-0-web_m2x_options
: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|
This modules modifies "many2one" and "many2manytags" form widgets so as to add some new display This modules modifies "many2one" and "many2manytags" form widgets so as
control options. to add some new display control options.
Options provided includes possibility to remove "Create..." and/or "Create and Options provided includes possibility to remove "Create..." and/or
Edit..." entries from many2one drop down. You can also change default number of "Create and Edit..." entries from many2one drop down. You can also
proposition appearing in the drop-down. Or prevent the dialog box poping in change default number of proposition appearing in the drop-down. Or
case of validation error. prevent the dialog box poping in case of validation error.
If not specified, the module will avoid proposing any of the create options If not specified, the module will avoid proposing any of the create
if the current user has no permission rights to create the related object. options if the current user has no permission rights to create the
related object.
**Table of contents** **Table of contents**
@ -48,110 +49,131 @@ Usage
===== =====
in the field's options dict in the field's options dict
~~~~~~~~~~~~~~~~~~~~~~~~~~~ ---------------------------
``create`` *boolean* (Default: depends if user have create rights) ``create`` *boolean* (Default: depends if user have create rights)
Whether to display the "Create..." entry in dropdown panel. Whether to display the "Create..." entry in dropdown panel.
``create_edit`` *boolean* (Default: depends if user have create rights) ``create_edit`` *boolean* (Default: depends if user have create rights)
Whether to display "Create and Edit..." entry in dropdown panel Whether to display "Create and Edit..." entry in dropdown panel
``m2o_dialog`` *boolean* (Default: depends if user have create rights) ``m2o_dialog`` *boolean* (Default: depends if user have create rights)
Whether to display the many2one dialog in case of validation error. Whether to display the many2one dialog in case of validation error.
``limit`` *int* (Default: odoo default value is ``8``) ``limit`` *int* (Default: odoo default value is ``8``)
Number of displayed record in drop-down panel Number of displayed record in drop-down panel
``search_more`` *boolean* ``search_more`` *boolean*
Used to force disable/enable search more button. Used to force disable/enable search more button.
``field_color`` *string* ``field_color`` *string*
A string to define the field used to define color. A string to define the field used to define color. This option has to
This option has to be used with colors. be used with colors.
``colors`` *dictionary* ``colors`` *dictionary*
A dictionary to link field value with a HTML color. A dictionary to link field value with a HTML color. This option has
This option has to be used with field_color. to be used with field_color.
``no_open_edit`` *boolean* (Default: value of ``no_open`` which is ``False`` if not set) ``no_open_edit`` *boolean* (Default: value of ``no_open`` which is
``False`` if not set)
Causes a many2one not to offer to click through in edit mode, but well in read mode Causes a many2one not to offer to click through in edit mode, but
well in read mode
``open`` *boolean* (Default: ``False``) ``open`` *boolean* (Default: ``False``)
Makes many2many_tags and one2many rows buttons that open the linked resource Makes many2many_tags and one2many rows buttons that open the linked
resource
``no_color_picker`` *boolean* (Default: ``False``) ``no_color_picker`` *boolean* (Default: ``False``)
Deactivates the color picker on many2many_tags buttons to do nothing (ignored if open is set) Deactivates the color picker on many2many_tags buttons to do nothing
(ignored if open is set)
ir.config_parameter options ir.config_parameter options
~~~~~~~~~~~~~~~~~~~~~~~~~~~ ---------------------------
Now you can disable "Create..." and "Create and Edit..." entry for all widgets in the odoo instance. Now you can disable "Create..." and "Create and Edit..." entry for all
If you disable one option, you can enable it for particular field by setting "create: True" option directly on the field definition. widgets in the odoo instance. If you disable one option, you can enable
it for particular field by setting "create: True" option directly on the
field definition.
``web_m2x_options.create`` *boolean* (Default: depends if user have create rights) ``web_m2x_options.create`` *boolean* (Default: depends if user have
create rights)
Whether to display the "Create..." entry in dropdown panel for all fields in the odoo instance. Whether to display the "Create..." entry in dropdown panel for all
fields in the odoo instance.
``web_m2x_options.create_edit`` *boolean* (Default: depends if user have create rights) ``web_m2x_options.create_edit`` *boolean* (Default: depends if user have
create rights)
Whether to display "Create and Edit..." entry in dropdown panel for all fields in the odoo instance. Whether to display "Create and Edit..." entry in dropdown panel for
all fields in the odoo instance.
``web_m2x_options.m2o_dialog`` *boolean* (Default: depends if user have create rights) ``web_m2x_options.m2o_dialog`` *boolean* (Default: depends if user have
create rights)
Whether to display the many2one dialog in case of validation error for all fields in the odoo instance. Whether to display the many2one dialog in case of validation error
for all fields in the odoo instance.
``web_m2x_options.limit`` *int* (Default: odoo default value is ``8``) ``web_m2x_options.limit`` *int* (Default: odoo default value is ``8``)
Number of displayed record in drop-down panel for all fields in the odoo instance Number of displayed record in drop-down panel for all fields in the
odoo instance
``web_m2x_options.search_more`` *boolean* (Default: default value is ``False``) ``web_m2x_options.search_more`` *boolean* (Default: default value is
``False``)
Whether the field should always show "Search more..." entry or not. Whether the field should always show "Search more..." entry or not.
``web_m2x_options.field_limit_entries`` *int* ``web_m2x_options.field_limit_entries`` *int*
Number of displayed lines on all One2many fields Number of displayed lines on all One2many fields
To add these parameters go to Configuration -> Technical -> Parameters -> System Parameters and add new parameters like: To add these parameters go to Configuration -> Technical -> Parameters
-> System Parameters and add new parameters like:
- web_m2x_options.create: False
- web_m2x_options.create_edit: False
- web_m2x_options.m2o_dialog: False
- web_m2x_options.limit: 10
- web_m2x_options.search_more: True
- web_m2x_options.field_limit_entries: 5
- web_m2x_options.create: False
- web_m2x_options.create_edit: False
- web_m2x_options.m2o_dialog: False
- web_m2x_options.limit: 10
- web_m2x_options.search_more: True
- web_m2x_options.field_limit_entries: 5
Example Example
~~~~~~~ -------
Your XML form view definition could contain: Your XML form view definition could contain:
.. code-block:: xml .. code:: xml
... ...
<field name="partner_id" options="{'limit': 10, 'create': false, 'create_edit': false, 'search_more': true, 'field_color':'state', 'colors':{'active':'green'}}"/> <field name="partner_id" options="{'limit': 10, 'create': false, 'create_edit': false, 'search_more': true, 'field_color':'state', 'colors':{'active':'green'}}"/>
... ...
Known issues / Roadmap Known issues / Roadmap
====================== ======================
Double check that you have no inherited view that remove ``options`` you set on a field ! Double check that you have no inherited view that remove ``options`` you
If nothing works, add a debugger in the first line of ``_search method`` and enable debug mode in Odoo. When you write something in a many2one field, javascript debugger should pause. If not verify your installation. set on a field ! If nothing works, add a debugger in the first line of
``_search method`` and enable debug mode in Odoo. When you write
something in a many2one field, javascript debugger should pause. If not
verify your installation.
- Instead of making the tags rectangle clickable, I think it's better to put the text as a clickable link, so we will get a consistent behaviour/aspect with other clickable elements (many2one...). - Instead of making the tags rectangle clickable, I think it's better
- In edit mode, it would be great to add an icon like the one on many2one fields to allow to open the many2many in a popup window. to put the text as a clickable link, so we will get a consistent
- Include this feature as a configurable option via parameter to have this behaviour by default in all many2many tags. behaviour/aspect with other clickable elements (many2one...).
- In edit mode, it would be great to add an icon like the one on
many2one fields to allow to open the many2many in a popup window.
- Include this feature as a configurable option via parameter to have
this behaviour by default in all many2many tags.
Bug Tracker Bug Tracker
=========== ===========
@ -159,7 +181,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_m2x_options%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_m2x_options%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.
@ -167,7 +189,7 @@ Credits
======= =======
Authors Authors
~~~~~~~ -------
* initOS GmbH * initOS GmbH
* ACSONE SA/NV * ACSONE SA/NV
@ -175,32 +197,43 @@ Authors
* Tecnativa * Tecnativa
Contributors Contributors
~~~~~~~~~~~~ ------------
* David Coninckx <davconinckx@gmail.com> - David Coninckx <davconinckx@gmail.com>
* Emanuel Cino <ecino@compassion.ch>
* Holger Brunn <hbrunn@therp.nl>
* Nicolas JEUDY <nicolas@sudokeys.com>
* Yannick Vaucher <yannick.vaucher@camptocamp.com>
* Zakaria Makrelouf <z.makrelouf@gmail.com>
* `Tecnativa <https://www.tecnativa.com>`_:
* Jairo Llopis <jairo.llopis@tecnativa.com> - Emanuel Cino <ecino@compassion.ch>
* David Vidal <david.vidal@tecnativa.com>
* Ernesto Tejeda <ernesto.tejeda87@gmail.com> - Holger Brunn <hbrunn@therp.nl>
* Carlos Roca
* Bhavesh Odedra <bodedra@opensourceintegrators.com> - Nicolas JEUDY <nicolas@sudokeys.com>
* Dhara Solanki <dhara.solanki@initos.com> (http://www.initos.com)
* `Trobz <https://trobz.com>`_: - Yannick Vaucher <yannick.vaucher@camptocamp.com>
* Hoang Diep <hoang@trobz.com>
- Zakaria Makrelouf <z.makrelouf@gmail.com>
- `Tecnativa <https://www.tecnativa.com>`__:
- Jairo Llopis <jairo.llopis@tecnativa.com>
- David Vidal <david.vidal@tecnativa.com>
- Ernesto Tejeda <ernesto.tejeda87@gmail.com>
- Carlos Roca
- Bhavesh Odedra <bodedra@opensourceintegrators.com>
- Dhara Solanki <dhara.solanki@initos.com> (http://www.initos.com)
- `Trobz <https://trobz.com>`__:
- Hoang Diep <hoang@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.
@ -212,6 +245,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_m2x_options>`_ project on GitHub. This module is part of the `OCA/web <https://github.com/OCA/web/tree/17.0/web_m2x_options>`_ 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,24 @@
- David Coninckx \<<davconinckx@gmail.com>\>
- Emanuel Cino \<<ecino@compassion.ch>\>
- Holger Brunn \<<hbrunn@therp.nl>\>
- Nicolas JEUDY \<<nicolas@sudokeys.com>\>
- Yannick Vaucher \<<yannick.vaucher@camptocamp.com>\>
- Zakaria Makrelouf \<<z.makrelouf@gmail.com>\>
- [Tecnativa](https://www.tecnativa.com):
- Jairo Llopis \<<jairo.llopis@tecnativa.com>\>
- David Vidal \<<david.vidal@tecnativa.com>\>
- Ernesto Tejeda \<<ernesto.tejeda87@gmail.com>\>
- Carlos Roca
- Bhavesh Odedra \<<bodedra@opensourceintegrators.com>\>
- Dhara Solanki \<<dhara.solanki@initos.com>\> (<http://www.initos.com>)
- [Trobz](https://trobz.com):
- Hoang Diep \<<hoang@trobz.com>\>

View File

@ -1,16 +0,0 @@
* David Coninckx <davconinckx@gmail.com>
* Emanuel Cino <ecino@compassion.ch>
* Holger Brunn <hbrunn@therp.nl>
* Nicolas JEUDY <nicolas@sudokeys.com>
* Yannick Vaucher <yannick.vaucher@camptocamp.com>
* Zakaria Makrelouf <z.makrelouf@gmail.com>
* `Tecnativa <https://www.tecnativa.com>`_:
* Jairo Llopis <jairo.llopis@tecnativa.com>
* David Vidal <david.vidal@tecnativa.com>
* Ernesto Tejeda <ernesto.tejeda87@gmail.com>
* Carlos Roca
* Bhavesh Odedra <bodedra@opensourceintegrators.com>
* Dhara Solanki <dhara.solanki@initos.com> (http://www.initos.com)
* `Trobz <https://trobz.com>`_:
* Hoang Diep <hoang@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,11 @@
This modules modifies "many2one" and "many2manytags" form widgets so as
to add some new display control options.
Options provided includes possibility to remove "Create..." and/or
"Create and Edit..." entries from many2one drop down. You can also
change default number of proposition appearing in the drop-down. Or
prevent the dialog box poping in case of validation error.
If not specified, the module will avoid proposing any of the create
options if the current user has no permission rights to create the
related object.

View File

@ -1,10 +0,0 @@
This modules modifies "many2one" and "many2manytags" form widgets so as to add some new display
control options.
Options provided includes possibility to remove "Create..." and/or "Create and
Edit..." entries from many2one drop down. You can also change default number of
proposition appearing in the drop-down. Or prevent the dialog box poping in
case of validation error.
If not specified, the module will avoid proposing any of the create options
if the current user has no permission rights to create the related object.

View File

@ -0,0 +1,13 @@
Double check that you have no inherited view that remove `options` you
set on a field ! If nothing works, add a debugger in the first line of
`_search method` and enable debug mode in Odoo. When you write something
in a many2one field, javascript debugger should pause. If not verify
your installation.
- Instead of making the tags rectangle clickable, I think it's better to
put the text as a clickable link, so we will get a consistent
behaviour/aspect with other clickable elements (many2one...).
- In edit mode, it would be great to add an icon like the one on
many2one fields to allow to open the many2many in a popup window.
- Include this feature as a configurable option via parameter to have
this behaviour by default in all many2many tags.

View File

@ -1,6 +0,0 @@
Double check that you have no inherited view that remove ``options`` you set on a field !
If nothing works, add a debugger in the first line of ``_search method`` and enable debug mode in Odoo. When you write something in a many2one field, javascript debugger should pause. If not verify your installation.
- Instead of making the tags rectangle clickable, I think it's better to put the text as a clickable link, so we will get a consistent behaviour/aspect with other clickable elements (many2one...).
- In edit mode, it would be great to add an icon like the one on many2one fields to allow to open the many2many in a popup window.
- Include this feature as a configurable option via parameter to have this behaviour by default in all many2many tags.

View File

@ -0,0 +1,106 @@
## in the field's options dict
`create` *boolean* (Default: depends if user have create rights)
> Whether to display the "Create..." entry in dropdown panel.
`create_edit` *boolean* (Default: depends if user have create rights)
> Whether to display "Create and Edit..." entry in dropdown panel
`m2o_dialog` *boolean* (Default: depends if user have create rights)
> Whether to display the many2one dialog in case of validation error.
`limit` *int* (Default: odoo default value is `8`)
> Number of displayed record in drop-down panel
`search_more` *boolean*
> Used to force disable/enable search more button.
`field_color` *string*
> A string to define the field used to define color. This option has to
> be used with colors.
`colors` *dictionary*
> A dictionary to link field value with a HTML color. This option has to
> be used with field_color.
`no_open_edit` *boolean* (Default: value of `no_open` which is `False`
if not set)
> Causes a many2one not to offer to click through in edit mode, but well
> in read mode
`open` *boolean* (Default: `False`)
> Makes many2many_tags and one2many rows buttons that open the linked
> resource
`no_color_picker` *boolean* (Default: `False`)
> Deactivates the color picker on many2many_tags buttons to do nothing
> (ignored if open is set)
## ir.config_parameter options
Now you can disable "Create..." and "Create and Edit..." entry for all
widgets in the odoo instance. If you disable one option, you can enable
it for particular field by setting "create: True" option directly on the
field definition.
`web_m2x_options.create` *boolean* (Default: depends if user have create
rights)
> Whether to display the "Create..." entry in dropdown panel for all
> fields in the odoo instance.
`web_m2x_options.create_edit` *boolean* (Default: depends if user have
create rights)
> Whether to display "Create and Edit..." entry in dropdown panel for
> all fields in the odoo instance.
`web_m2x_options.m2o_dialog` *boolean* (Default: depends if user have
create rights)
> Whether to display the many2one dialog in case of validation error for
> all fields in the odoo instance.
`web_m2x_options.limit` *int* (Default: odoo default value is `8`)
> Number of displayed record in drop-down panel for all fields in the
> odoo instance
`web_m2x_options.search_more` *boolean* (Default: default value is
`False`)
> Whether the field should always show "Search more..." entry or not.
`web_m2x_options.field_limit_entries` *int*
> Number of displayed lines on all One2many fields
To add these parameters go to Configuration -\> Technical -\> Parameters
-\> System Parameters and add new parameters like:
- web_m2x_options.create: False
- web_m2x_options.create_edit: False
- web_m2x_options.m2o_dialog: False
- web_m2x_options.limit: 10
- web_m2x_options.search_more: True
- web_m2x_options.field_limit_entries: 5
## Example
Your XML form view definition could contain:
``` xml
...
<field name="partner_id" options="{'limit': 10, 'create': false, 'create_edit': false, 'search_more': true, 'field_color':'state', 'colors':{'active':'green'}}"/>
...
```

View File

@ -1,95 +0,0 @@
in the field's options dict
~~~~~~~~~~~~~~~~~~~~~~~~~~~
``create`` *boolean* (Default: depends if user have create rights)
Whether to display the "Create..." entry in dropdown panel.
``create_edit`` *boolean* (Default: depends if user have create rights)
Whether to display "Create and Edit..." entry in dropdown panel
``m2o_dialog`` *boolean* (Default: depends if user have create rights)
Whether to display the many2one dialog in case of validation error.
``limit`` *int* (Default: odoo default value is ``8``)
Number of displayed record in drop-down panel
``search_more`` *boolean*
Used to force disable/enable search more button.
``field_color`` *string*
A string to define the field used to define color.
This option has to be used with colors.
``colors`` *dictionary*
A dictionary to link field value with a HTML color.
This option has to be used with field_color.
``no_open_edit`` *boolean* (Default: value of ``no_open`` which is ``False`` if not set)
Causes a many2one not to offer to click through in edit mode, but well in read mode
``open`` *boolean* (Default: ``False``)
Makes many2many_tags and one2many rows buttons that open the linked resource
``no_color_picker`` *boolean* (Default: ``False``)
Deactivates the color picker on many2many_tags buttons to do nothing (ignored if open is set)
ir.config_parameter options
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Now you can disable "Create..." and "Create and Edit..." entry for all widgets in the odoo instance.
If you disable one option, you can enable it for particular field by setting "create: True" option directly on the field definition.
``web_m2x_options.create`` *boolean* (Default: depends if user have create rights)
Whether to display the "Create..." entry in dropdown panel for all fields in the odoo instance.
``web_m2x_options.create_edit`` *boolean* (Default: depends if user have create rights)
Whether to display "Create and Edit..." entry in dropdown panel for all fields in the odoo instance.
``web_m2x_options.m2o_dialog`` *boolean* (Default: depends if user have create rights)
Whether to display the many2one dialog in case of validation error for all fields in the odoo instance.
``web_m2x_options.limit`` *int* (Default: odoo default value is ``8``)
Number of displayed record in drop-down panel for all fields in the odoo instance
``web_m2x_options.search_more`` *boolean* (Default: default value is ``False``)
Whether the field should always show "Search more..." entry or not.
``web_m2x_options.field_limit_entries`` *int*
Number of displayed lines on all One2many fields
To add these parameters go to Configuration -> Technical -> Parameters -> System Parameters and add new parameters like:
- web_m2x_options.create: False
- web_m2x_options.create_edit: False
- web_m2x_options.m2o_dialog: False
- web_m2x_options.limit: 10
- web_m2x_options.search_more: True
- web_m2x_options.field_limit_entries: 5
Example
~~~~~~~
Your XML form view definition could contain:
.. code-block:: xml
...
<field name="partner_id" options="{'limit': 10, 'create': false, 'create_edit': false, 'search_more': true, 'field_color':'state', 'colors':{'active':'green'}}"/>
...