Zum Inhalt springen
Menü
Sie müssen registriert sein, um mit der Community zu interagieren.
Diese Frage wurde gekennzeichnet
1 Antworten
2985 Ansichten

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
Verwerfen
Beste Antwort

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
Verwerfen
Verknüpfte Beiträge Antworten Ansichten Aktivität
1
Aug. 24
3375
2
Juli 25
2164
2
Apr. 24
5151
1
Aug. 25
2122
2
Apr. 25
1768