diff --git a/addons/web/static/test/helpers/mock_server.js b/addons/web/static/test/helpers/mock_server.js index fca3e2a418c..3d52ea54462 100644 --- a/addons/web/static/test/helpers/mock_server.js +++ b/addons/web/static/test/helpers/mock_server.js @@ -174,17 +174,23 @@ var MockServer = Class.extend({ var modifiers = {}; if (node.attrs.attrs) { var attrs = pyeval.py_eval(node.attrs.attrs); - if (attrs.invisible) { - modifiers.invisible = attrs.invisible; - } - if (attrs.readonly) { - modifiers.readonly = attrs.readonly; - } + _.extend(modifiers, attrs); delete node.attrs.attrs; } - if (node.attrs.invisible) { - modifiers.invisible = pyeval.py_eval(node.attrs.invisible); + if (node.attrs.states) { + if (!modifiers.invisible) { + modifiers.invisible = []; + } + modifiers.invisible.push(["state", "not in", node.attrs.states.split(",")]); } + _.each(["invisible", "readonly", "required"], function (a) { + if (node.attrs[a]) { + var v = pyeval.py_eval(node.attrs[a]); + if (v || modifiers[a] === undefined) { + modifiers[a] = v; + } + } + }); node.attrs.modifiers = JSON.stringify(modifiers); if (node.tag === 'field') { fieldNodes[node.attrs.name] = node; diff --git a/addons/web/static/test/views/form_tests.js b/addons/web/static/test/views/form_tests.js index cc23c1a551c..41584bc97e7 100644 --- a/addons/web/static/test/views/form_tests.js +++ b/addons/web/static/test/views/form_tests.js @@ -30,6 +30,7 @@ QUnit.module('Views', { selection: [[1, "Low"], [2, "Medium"], [3, "High"]], default: 1, }, + state: {string: "State", type: "selection", selection: [["ab", "AB"], ["cd", "CD"], ["ef", "EF"]]} }, records: [{ id: 1, @@ -41,6 +42,7 @@ QUnit.module('Views', { p: [], timmy: [], trululu: 4, + state: "ab", }, { id: 2, display_name: "second record", @@ -51,9 +53,11 @@ QUnit.module('Views', { p: [], timmy: [], trululu: 1, + state: "cd", }, { id: 4, - display_name: "aaa" + display_name: "aaa", + state: "ef", }], onchanges: {}, }, @@ -529,7 +533,7 @@ QUnit.module('Views', { }); QUnit.test('buttons in form view', function (assert) { - assert.expect(6); + assert.expect(7); var rpcCount = 0; @@ -538,8 +542,9 @@ QUnit.module('Views', { model: 'partner', data: this.data, arch: '