İçereği Atla
Menü
Bu soru işaretlendi
1 Cevapla
5320 Görünümler

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
Vazgeç
En İyi Yanıt

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
Vazgeç
Üretici

Thank you very much, it works :)

İlgili Gönderiler Cevaplar Görünümler Aktivite
2
Nis 23
2841
1
Mar 15
5845
0
Mar 15
5534
0
May 21
3565
2
Nis 20
15693