I'm trying to override the function dispatch_rpc located in odoo>odoo>service>__init__.py
by using the monkeypatch method.
this is the new definition of the function
# -*- coding: utf-8 -*-
from . import common
import odoo
import threading
from odoo import service
def dispatch_rpc(service_name, method, params):
""" Handle a RPC call.
This is pure Python code, the actual marshalling (from/to XML/JSON)
is done in a upper layer.
"""
threading.current_thread().uid = None
threading.current_thread().dbname.dis = None
if service_name == 'common':
dispatch = odoo.addons.common.dispatch
elif service_name == 'db':
dispatch = odoo.service.db.dispatch
elif service_name == 'object':
dispatch = odoo.service.model.dispatch
return dispatch(method, params)
service.dispatch_rpc = dispatch_rpc
the probleme is that the new definition of dispatch_rpc is not taken into consideration.
and I get just the behavor of the old definition.
Thanks in advance,
youel
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
- CRM
- e-Commerce
- Boekhouding
- Voorraad
- PoS
- Project
- MRP
Deze vraag is gerapporteerd
2
Antwoorden
3614
Weergaven
Hi,
Try referring the blog on how to apply MonkeyPatching in odoo 16:https://www.cybrosys.com/blog/what-is-monkey-patching-and-how-it-can-be-applied-in-odoo-16
Hope it helps
change new fonction name
for exemple
service.dispatch_rpc = dispatch_rpc_new
not necessarily. he can keep the same name.
Geniet je van het gesprek? Blijf niet alleen lezen, doe ook mee!
Maak vandaag nog een account aan om te profiteren van exclusieve functies en deel uit te maken van onze geweldige community!
AanmeldenGerelateerde posts | Antwoorden | Weergaven | Activiteit | |
---|---|---|---|---|
|
5
sep. 25
|
22298 | ||
|
3
aug. 25
|
3263 | ||
|
1
mei 25
|
3115 | ||
|
1
apr. 25
|
4089 | ||
|
1
apr. 25
|
4951 |
Hi,
firstly, did you check that the server reads your file ? you can add print('====') before your function def dispatch_rpc() and then watch odoo logs to see if displayed.
I think this is probably the issue: your file is not read.
yes the server read my file .
I already checked that by using print("===============") before the function.
yes the server read my file .
I already checked that by using print("===============") before the function.