From ea7ff8f6fa3c60855481b2ba1ce84d0b2ec5380d Mon Sep 17 00:00:00 2001 From: Martin Geubelle Date: Fri, 19 May 2017 11:32:39 +0200 Subject: [PATCH] [FIX] web: Form: handle attributes and modifiers on notebook Before this commit, the renderer interpreted the special tag, but ignored modifiers and attributes. Most nodes are rendered by the `_renderGenericElement` method, so this behaviour is automatic. However, special tags need to do it explicitely. --- .../static/src/js/views/form/form_renderer.js | 8 +++--- addons/web/static/tests/views/form_tests.js | 27 +++++++++++++++++++ 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/addons/web/static/src/js/views/form/form_renderer.js b/addons/web/static/src/js/views/form/form_renderer.js index a2c0d2129ab..c96a513ab03 100644 --- a/addons/web/static/src/js/views/form/form_renderer.js +++ b/addons/web/static/src/js/views/form/form_renderer.js @@ -679,10 +679,12 @@ var FormRenderer = BasicRenderer.extend({ }, }); }); - return $('
') + var $notebook = $('
') .data('name', node.attrs.name || '_default_') - .append($headers) - .append($pages); + .append($headers, $pages); + this._registerModifiers(node, this.state, $notebook); + this._handleAttributes($notebook, node); + return $notebook; }, /** * @private diff --git a/addons/web/static/tests/views/form_tests.js b/addons/web/static/tests/views/form_tests.js index e5efb3f9b7a..fecac794979 100644 --- a/addons/web/static/tests/views/form_tests.js +++ b/addons/web/static/tests/views/form_tests.js @@ -298,6 +298,33 @@ QUnit.module('Views', { form.destroy(); }); + QUnit.test('properly handle modifiers and attributes on notebook tags', function (assert) { + assert.expect(2); + + var form = createView({ + View: FormView, + model: 'partner', + data: this.data, + arch: '
' + + '' + + '' + + '' + + '' + + '' + + '' + + '' + + '
', + res_id: 1, + }); + + assert.ok(form.$('.o_notebook').hasClass('o_invisible_modifier'), + 'the notebook should handle modifiers (invisible)'); + assert.ok(form.$('.o_notebook').hasClass('new_class'), + 'the notebook should handle attributes'); + form.destroy(); + }); + QUnit.test('invisible attrs on first notebook page', function (assert) { assert.expect(6);