Přejít na obsah
Menu
You need to be registered to interact with the community.
This question has been flagged
1 Odpovědět
5288 Zobrazení

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
Zrušit
Nejlepší odpověď

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
Zrušit
Autor

Thank you very much, it works :)

Related Posts Odpovědi Zobrazení Aktivita
2
dub 23
2752
1
bře 15
5756
0
bře 15
5477
0
kvě 21
3515
2
dub 20
15604