diff options
| author | Laurent Smet <las@odoo.com> | 2020-11-20 08:00:31 +0000 |
|---|---|---|
| committer | Raphael Collet <rco@odoo.com> | 2020-12-02 11:45:17 +0000 |
| commit | 5279a08a005bacee4ecd76cc189d8ce65c8e600c (patch) | |
| tree | b635beef0fd3e992f1fe407ec247775ec0bc6146 /odoo/addons/test_new_api/views/test_new_api_views.xml | |
| parent | baf32bbc177fe653ffc4ee4cd9c014c85910c8d2 (diff) | |
[FIX] core: invalidation of computed editable field in one2many
This fixes the issue introduced by revision fd50ba9fb838067fab0b920470cf79b9c94d785c
The way computed fields are invalidated depends on the order of the dict
passed as a parameter to method onchange(). This causes some unexpected
behavior when dealing with computed editable fields: the user loses the
value in that field because of the onchange.
Explanation: during the onchange, the modified field is cached by
record._update_cache(changed_values, validate=True)
If the field is a one2many, 'value' contains an update command for each
modified line. Because of 'validate=True', the assignment triggers
field computations on the lines, which are already handled by another
call to onchange(). In case anything on the parent model modifies some
line, the whole one2many values are returned to the user, and
accidentally recomputed fields show up in the interface.
closes odoo/odoo#62060
Signed-off-by: Raphael Collet (rco) <rco@openerp.com>
Diffstat (limited to 'odoo/addons/test_new_api/views/test_new_api_views.xml')
| -rw-r--r-- | odoo/addons/test_new_api/views/test_new_api_views.xml | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/odoo/addons/test_new_api/views/test_new_api_views.xml b/odoo/addons/test_new_api/views/test_new_api_views.xml index cd995456def..2595be58e6c 100644 --- a/odoo/addons/test_new_api/views/test_new_api_views.xml +++ b/odoo/addons/test_new_api/views/test_new_api_views.xml @@ -341,5 +341,31 @@ </form> </field> </record> + + <!-- compute_editable view --> + <record id="compute_editable_form" model="ir.ui.view"> + <field name="name">test_new_api.compute_editable.form</field> + <field name="model">test_new_api.compute_editable</field> + <field name="arch" type="xml"> + <form> + <sheet> + <field name="line_ids" mode="tree"> + <tree editable="bottom"> + <field name="value"/> + <field name="edit"/> + <field name="count"/> + </tree> + <form> + <!-- this view makes sure that field "same" is not considered --> + <field name="value"/> + <field name="edit"/> + <field name="count"/> + </form> + </field> + </sheet> + </form> + </field> + </record> + </data> </odoo> |
