Ir al contenido
Menú
Se marcó esta pregunta
1 Responder
5317 Vistas

Hello, I need to schedule a method from my own module. I set as Object the name of my model (_name) and the name of my method in Method. I tried to schedule it every minute to check if it works, but even if the scheduled time changes, the method is not called. My class is a Transient model and the method works if I call it manually.

Here is a screen:

http://it.tinypic.com/r/zldz13/8 

(I tried to set Arguments to '()' too)

And the piece of code from models.py that i want to schedule just for test (I put only the used method):

class prova(models.TransientModel):
_name = 'prove.prove'


def regola_restrizione(self, cr, uid, ids, context={}):

username = 'admin'
pwd = 'admin'
dbname = 'TestScheduler'

sock_common = xmlrpclib.ServerProxy('http://localhost:8069/xmlrpc/common')
uid = sock_common.login(dbname, username, pwd)
sock = xmlrpclib.ServerProxy'http://localhost:8069/xmlrpc/object')

rule = {

'model_id': '79',
'domain_force': "['|',('user_id','=',user.id),('user_id','=',False)]",
'active': 'TRUE',
'name': 'PROVA',
'global': 'FALSE',
'perm_unlink': 'TRUE',
'perm_write': 'TRUE',
'perm_read': 'TRUE',
'perm_create': 'TRUE',
'groups': [(6, 0, [9])]
}

sock.execute(dbname, uid, pwd, 'ir.rule', 'create', rule)

return True


Is there a way to know if I set the fields correctly and Odoo could 'catch' my method?

Any help is appreciated.

Avatar
Descartar
Mejor respuesta

Hi,

You just need to make one change inside your method defination as like below.

def regola_restrizione(self, cr, uid, ids=[ ], context={}): # Cause while calling from cron job Odoo will not pass ids.

I hope your issue will resolve. 

Avatar
Descartar
Autor

Thank you very much, it works :)

Publicaciones relacionadas Respuestas Vistas Actividad
2
abr 23
2839
1
mar 15
5841
0
mar 15
5531
0
may 21
3556
2
abr 20
15688