From 5501744a83cb9dc99c90fbfda7699f26729c9a68 Mon Sep 17 00:00:00 2001 From: "Xavier BOL (xbo)" Date: Tue, 14 Jun 2022 08:47:57 +0000 Subject: [PATCH] [IMP] web: add searchCount implementation in ORM service Part-of: odoo/odoo#92475 --- addons/web/static/src/core/orm_service.js | 8 ++++++++ .../static/tests/core/orm_service_tests.js | 20 +++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/addons/web/static/src/core/orm_service.js b/addons/web/static/src/core/orm_service.js index b5f929e92cf..56933502625 100644 --- a/addons/web/static/src/core/orm_service.js +++ b/addons/web/static/src/core/orm_service.js @@ -177,6 +177,14 @@ export class ORM { return this.call(model, "search_read", [], kwargs); } + searchCount(model, domain, ctx = {}) { + validateArray('domain', domain); + const kwargs = { + context: ctx, + }; + return this.call(model, 'search_count', [domain], kwargs); + } + unlink(model, ids, ctx) { validatePrimitiveList("ids", "number", ids); if (!ids.length) { diff --git a/addons/web/static/tests/core/orm_service_tests.js b/addons/web/static/tests/core/orm_service_tests.js index 24ad25e17ba..cf3f7fb0869 100644 --- a/addons/web/static/tests/core/orm_service_tests.js +++ b/addons/web/static/tests/core/orm_service_tests.js @@ -257,6 +257,26 @@ QUnit.test("searchRead method", async (assert) => { }); }); +QUnit.test("searchCount method", async (assert) => { + const [query, rpc] = makeFakeRPC(); + serviceRegistry.add("rpc", rpc); + const env = await makeTestEnv(); + await env.services.orm.searchCount("sale.order", [["user_id", "=", 2]]); + assert.strictEqual(query.route, "/web/dataset/call_kw/sale.order/search_count"); + assert.deepEqual(query.params, { + args: [[["user_id", "=", 2]]], + kwargs: { + context: { + lang: "en", + tz: "taht", + uid: 7, + }, + }, + method: "search_count", + model: "sale.order", + }); +}); + QUnit.test("webSearchRead method", async (assert) => { const [query, rpc] = makeFakeRPC(); serviceRegistry.add("rpc", rpc);