diff --git a/addons/board/static/src/js/board_view.js b/addons/board/static/src/js/board_view.js index 0aa5f3d63a80a7b2cd1f2afed13ef9419fb4ddde..daa84329ac55cb45eb39889ee25e862bc7202068 100644 --- a/addons/board/static/src/js/board_view.js +++ b/addons/board/static/src/js/board_view.js @@ -174,6 +174,9 @@ var BoardRenderer = FormRenderer.extend({ */ changeLayout: function (layout) { var $dashboard = this.$('.oe_dashboard'); + if (!$dashboard.length) { + return; + } var current_layout = $dashboard.attr('data-layout'); if (current_layout !== layout) { var clayout = current_layout.split('-').length, diff --git a/addons/board/static/tests/mobile/board_tests.js b/addons/board/static/tests/mobile/board_tests.js index 9b32e2e9dcb08bbc63152134b5affd311658f773..964471037d54365fab738b5b8baf48f013e60a51 100644 --- a/addons/board/static/tests/mobile/board_tests.js +++ b/addons/board/static/tests/mobile/board_tests.js @@ -113,4 +113,35 @@ odoo.define("board.dashboard_tests", function (require) { target.destroy(); }); + + QUnit.test("empty board view", async function (assert) { + assert.expect(2); + const target = await createView({ + View: BoardView, + debug: 1, + model: "board", + data: this.data, + arch: `<form string="My Dashboard"> + <board style="2-1"> + <column/> + </board> + </form>`, + archs: { + "partner,4,list": '<tree string="Partner"><field name="foo"/></tree>', + }, + }); + + assert.hasClass( + target.renderer.$el, + "o_dashboard", + "with a dashboard, the renderer should have the proper css class" + ); + assert.containsOnce( + target, + ".o_dashboard .o_view_nocontent", + "should have a no content helper" + ); + + target.destroy(); + }); });