[IMP] web: orm service: add webReadGroup function

Before this commit readGroup was actually calling web_read_group.
With this commit, readGroup calls read_group, and webReadGroup
calls web_read_group, as expected.

Part-of: odoo/odoo#73311
This commit is contained in:
Mathieu Duckerts-Antoine
2021-09-07 10:04:33 +00:00
committed by Aaron Bohy
parent c064eb0681
commit 205bb172ba
2 changed files with 48 additions and 4 deletions
+16 -2
View File
@@ -129,9 +129,9 @@ export class ORM {
}
readGroup(model, domain, fields, groupby, options = {}, ctx = {}) {
validateArray("domain", domain);
validatePrimitiveList("fields", "string", fields);
validatePrimitiveList("groupby", "string", groupby);
validateArray("domain", domain);
const kwargs = {
domain,
groupby,
@@ -139,7 +139,7 @@ export class ORM {
context: ctx,
};
assignOptions(kwargs, options, ["lazy", "offset", "orderby", "limit"]);
return this.call(model, "web_read_group", [], kwargs);
return this.call(model, "read_group", [], kwargs);
}
search(model, domain, options = {}, ctx = {}) {
@@ -169,6 +169,20 @@ export class ORM {
return this.call(model, "unlink", [ids], { context: ctx });
}
webReadGroup(model, domain, fields, groupby, options = {}, ctx = {}) {
validateArray("domain", domain);
validatePrimitiveList("fields", "string", fields);
validatePrimitiveList("groupby", "string", groupby);
const kwargs = {
domain,
groupby,
fields,
context: ctx,
};
assignOptions(kwargs, options, ["lazy", "offset", "orderby", "limit"]);
return this.call(model, "web_read_group", [], kwargs);
}
webSearchRead(model, domain, fields, options = {}, ctx = {}) {
validateArray("domain", domain);
validatePrimitiveList("fields", "string", fields);
@@ -155,11 +155,11 @@ QUnit.test("write method", async (assert) => {
});
});
QUnit.test("readGroup method", async (assert) => {
QUnit.test("webReadGroup method", async (assert) => {
const [query, rpc] = makeFakeRPC();
serviceRegistry.add("rpc", rpc);
const env = await makeTestEnv();
await env.services.orm.readGroup(
await env.services.orm.webReadGroup(
"sale.order",
[["user_id", "=", 2]],
["amount_total:sum"],
@@ -185,6 +185,36 @@ QUnit.test("readGroup method", async (assert) => {
});
});
QUnit.test("readGroup method", async (assert) => {
const [query, rpc] = makeFakeRPC();
serviceRegistry.add("rpc", rpc);
const env = await makeTestEnv();
await env.services.orm.readGroup(
"sale.order",
[["user_id", "=", 2]],
["amount_total:sum"],
["date_order"],
{ offset: 1 }
);
assert.strictEqual(query.route, "/web/dataset/call_kw/sale.order/read_group");
assert.deepEqual(query.params, {
args: [],
kwargs: {
domain: [["user_id", "=", 2]],
fields: ["amount_total:sum"],
groupby: ["date_order"],
context: {
lang: "en",
uid: 7,
tz: "taht",
},
offset: 1,
},
method: "read_group",
model: "sale.order",
});
});
QUnit.test("searchRead method", async (assert) => {
const [query, rpc] = makeFakeRPC();
serviceRegistry.add("rpc", rpc);