Skip to Content
Menu
This question has been flagged
1 Reply
2950 Views

I'm developing a new funtionality in Odoo 17 and Owl and I'm trying to inherit the companyService​ service in JavaScript to add some new code inside the computeActiveCompanyIds​ function. I tried using the patch function as shown here:


/** @odoo-module **/

import { companyService } from "@web/webclient/company_service";
import { patch } from "@web/core/utils/patch";


export const companyServiceInherit = {
computeActiveCompanyIds(cids) {
​// My code
},
}

patch(companyService, companyServiceInherit);

When I inherit the service this way I'm able to see my new code on the Chrome debug tool but it doesn't execute inside the new function, Odoo just uses the old one.

Is this way the correct one? How else can I try inheriting this service?

Avatar
Discard
Best Answer

Hi,

Use the following code to patch the function:

/** @odoo-module **/

import { companyService } from "@web/webclient/company_service";

import { patch } from "@web/core/utils/patch";


patch(companyService.prototype, {    async setup() {

        super.setup(); // By using the super function, we can execute all parent functions along with ours.

    },    computeActiveCompanyIds(cids) {         // Write your code here

    },});


Please refer to the following blog for understanding the working of patching, with example:


https://www.cybrosys.com/blog/how-to-patch-existing-owl-component-in-odoo-17


Hope it helps.

Avatar
Discard
Related Posts Replies Views Activity
1
Aug 24
3345
2
Jul 25
2120
2
Apr 24
5125
1
Aug 25
2074
2
Apr 25
1750