From 6cdd91b614e33bd1f8bb37ca5b83fb4a7163fe00 Mon Sep 17 00:00:00 2001 From: Aaron Bohy Date: Wed, 29 Jun 2022 12:59:54 +0000 Subject: [PATCH] [FIX] web: kanban: add JSON to the rendering context In legacy kanban views, one could use JSON in the arch to, e.g. parse text field values encoding data. This was no longer the case in the new implementation. This commit fixes the issue by adding it to the kanban record rendering context. However, we'll consider adding it in owl directly. Part-of: odoo/odoo#92475 --- .../static/src/views/kanban/kanban_record.js | 4 ++++ .../static/tests/views/kanban_view_tests.js | 24 +++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/addons/web/static/src/views/kanban/kanban_record.js b/addons/web/static/src/views/kanban/kanban_record.js index ef64b30c91b..c61ac3a0bcb 100644 --- a/addons/web/static/src/views/kanban/kanban_record.js +++ b/addons/web/static/src/views/kanban/kanban_record.js @@ -360,6 +360,10 @@ export class KanbanRecord extends Component { return luxon; } + get JSON() { + return JSON; + } + get read_only_mode() { return this.props.readonly; } diff --git a/addons/web/static/tests/views/kanban_view_tests.js b/addons/web/static/tests/views/kanban_view_tests.js index 9f1c9b4cc32..032285fcd46 100644 --- a/addons/web/static/tests/views/kanban_view_tests.js +++ b/addons/web/static/tests/views/kanban_view_tests.js @@ -9967,4 +9967,28 @@ QUnit.module("Views", (hooks) => { assert.notOk(dropdown.hasAttribute("placeholder")); } ); + + QUnit.test("can use JSON in kanban template", async (assert) => { + serverData.models.partner.records = [{ id: 1, foo: '["g", "e", "d"]' }]; + await makeView({ + type: "kanban", + resModel: "partner", + serverData, + arch: ` + + + + +
+ +
+
+
+
+ `, + }); + assert.containsOnce(target, ".o_kanban_record:not(.o_kanban_ghost)"); + assert.containsN(target, ".o_kanban_record span", 3); + assert.strictEqual(target.querySelector(".o_kanban_record").innerText, "ged"); + }); });