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.
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 :)