Skip ke Konten
Menu
Pertanyaan ini telah diberikan tanda
3 Replies
4440 Tampilan

Is there any way to patch a owl service function?


Just to give some context the idea is to reimplement the function _triggerDownload from the ActionService (@web/webclient/actions/action_service)


I have read the documentation have seen ways to patch components but not services.

Any help is appreciated.

Avatar
Buang
Penulis

Had to patch the start method from the service, although it works it does not seem to be the "best practice" to perform this override since I have to keep and manage all the code from the service in my reimplementation.

Still waiting for a better solution :)

Jawaban Terbai

In Odoo OWL, you can patch a service function by using the extend() method provided by the Owl framework. The extend() method allows you to override the behavior of an existing service function by providing a new implementation for that function.

Here is an example of how you could use the extend() method to patch the _triggerDownload function in the ActionService:

import { ActionService } from '@web/webclient/actions/action_service';

ActionService.extend({
    _triggerDownload(id, action) {
        // Your new implementation of the _triggerDownload function goes here
    }
});

Keep in mind that patching service functions in this way should be done with caution, as it can potentially cause conflicts with other parts of the system that rely on the original behavior of the service. It's always a good idea to carefully test your changes and make sure they don't cause any unexpected issues.

Avatar
Buang
Jawaban Terbai

Hi, I read you found a way to patch the start method? I've been trying but nothings happening. Is this the correct code?

odoo.define("crm_custom.CopyFunction", function(require){
/** @odoo-module**/
'use strict';
var actionService = require("@web/webclient/actions/action_service")
const { patch } = require('web.utils')
patch(actionService, 'crm_custom.CopyFunction', {
start(env){
console.log("test")
}
})

});


I also added this to web.assets_backend but nothing is happening

Avatar
Buang
Penulis Jawaban Terbai

#bump

Avatar
Buang
Post Terkait Replies Tampilan Aktivitas
0
Jan 25
561
1
Mar 24
1199
0
Sep 23
2488
1
Mei 23
1888
0
Okt 22
1657