[IMP] web: conditional create/delete options on x2many fields

After this commit, x2many fields can have options like
create/delete which accept a domain, to make create/delete on
x2many conditional, say for example x2many field can have options
like:

options="{'create:' [('foo', '=', True)]', 'delete:' [('foo', '=', True)]'}"

With this when foo field is True, Create and Delete actions will
be available, but if foo is False then they won't.

In case of one2many fields, if 'create' is false, then 'Add a line'
(list) or 'Add' button (kanban) won't be displayed.

In case of many2many fields, 'Add a line' or 'Add' button will
always be displayed even if 'create' condition is false as it
doesn't really create records (but rather links existing ones).
Same applies for delete.

Task-2092953

closes odoo/odoo#42919

Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
Co-authored-by: Parth Chokshi <pch@odoo.com>
Co-authored-by: Aaron Bohy<aab@odoo.com>
This commit is contained in:
Mohammed Shekha
2020-01-22 13:01:33 +00:00
committed by Aaron Bohy
co-authored by Parth Chokshi Aaron Bohy
parent a5c4855a6b
commit 370f53d8dc
6 changed files with 486 additions and 60 deletions
+14
View File
@@ -2137,6 +2137,12 @@ Relational fields
Options:
- create: domain determining whether or not new tags can be created (default: True).
.. code-block:: xml
<field name="category_id" widget="many2many_tags" options="{'create': [['some_other_field', '>', 24]]}"/>
- color_field: the name of a numeric field, which should be present in the
view. A color will be chosen depending on its value.
@@ -2176,6 +2182,14 @@ Relational fields
Options:
- create: domain determining whether or not related records can be created (default: True).
- delete: domain determining whether or not related records can be deleted (default: True).
.. code-block:: xml
<field name="turtles" options="{'create': [['some_other_field', '>', 24]]}"/>
- create_text: a string that is used to customize the 'Add' label/text.
.. code-block:: xml