summaryrefslogtreecommitdiff
path: root/addons/web/static/tests/fields/relational_fields_tests.js
diff options
context:
space:
mode:
authorCarlos Mayo <carlos.mayo@fairhall.es>2019-11-13 09:56:04 +0000
committerAaron Bohy <aab@odoo.com>2020-01-07 14:37:06 +0000
commit9f49709ef3ea8a522baf1e0e1e0ca7061921636a (patch)
treec4f5e6ede25fcc04253f5a80baa5e909d4bbb75d /addons/web/static/tests/fields/relational_fields_tests.js
parentc86bff6a02617ca1f06a3dadf21924e7e38f5877 (diff)
[FIX] web: many2many_checkboxes: react to domain changes
Let's assume a many2many_checkboxes widget in a form view with a dynamic domain (depending on another field in the view). At first rendering, the widget contains a checkbox for each value matching the domain. Before this rev., if the user changed the value of the field used in the domain, the many2many_checkboxes wasn't redrawn, so it still displayed the values matching the previous version of the domain. Closes #38509 Closes #40173 closes odoo/odoo#42867 X-original-commit: 1ace56f9a8cb56fb39235468dd13447bcbbee40a Signed-off-by: Aaron Bohy (aab) <aab@odoo.com> Co-authored-by: Aaron Bohy <aab@odoo.com>
Diffstat (limited to 'addons/web/static/tests/fields/relational_fields_tests.js')
-rw-r--r--addons/web/static/tests/fields/relational_fields_tests.js29
1 files changed, 29 insertions, 0 deletions
diff --git a/addons/web/static/tests/fields/relational_fields_tests.js b/addons/web/static/tests/fields/relational_fields_tests.js
index f8c466099e0..c3f9a95ea7d 100644
--- a/addons/web/static/tests/fields/relational_fields_tests.js
+++ b/addons/web/static/tests/fields/relational_fields_tests.js
@@ -2314,6 +2314,35 @@ QUnit.module('relational_fields', {
form.destroy();
});
+ QUnit.test('widget many2many_checkboxes: values are updated when domain changes', async function (assert) {
+ assert.expect(5);
+
+ const form = await createView({
+ View: FormView,
+ model: 'partner',
+ data: this.data,
+ arch: `<form>
+ <field name="int_field"/>
+ <field name="timmy" widget="many2many_checkboxes" domain="[['id', '>', int_field]]"/>
+ </form>`,
+ res_id: 1,
+ viewOptions: {
+ mode: 'edit',
+ },
+ });
+
+ assert.strictEqual(form.$('.o_field_widget[name=int_field]').val(), '10');
+ assert.containsN(form, '.o_field_widget[name=timmy] .custom-checkbox', 2);
+ assert.strictEqual(form.$('.o_field_widget[name=timmy] .o_form_label').text(), 'goldsilver');
+
+ await testUtils.fields.editInput(form.$('.o_field_widget[name=int_field]'), 13);
+
+ assert.containsOnce(form, '.o_field_widget[name=timmy] .custom-checkbox');
+ assert.strictEqual(form.$('.o_field_widget[name=timmy] .o_form_label').text(), 'silver');
+
+ form.destroy();
+ });
+
QUnit.module('FieldMany2ManyBinaryMultiFiles');
QUnit.test('widget many2many_binary', async function (assert) {