Skip ke Konten
Menu
Pertanyaan ini telah diberikan tanda
2 Replies
5154 Tampilan

Hi friends!!

Please who can help me?

I am really unable to resolve the problem.

In fact, i didnt understand the reason why the onchange is called when i press on the button create not on the field convention_id?!

Here is the code.

please help

XML:

<field name="convention_id" on_change="on_change_conventions_id(convention_id,company_id)" attrs="{'invisible': [('company_id','=',False)]}"/>

Python:

def get_inputs(self, cr, uid,ids, convention_id, company_id, context=None):

ret = []

obj = self.pool.get('seetek.convention.categorie.line')

obj_ids = obj.search(cr, uid, [('convention_id', '=', convention_id)])

res = obj.read(cr, uid, obj_ids, ['nom','nature','id'], context)

for r in res :

inputs = {

'company_convention_categorie_id': r['id'],

'company_id': company_id,

'nom': r['nom'],

'nature': r['nature'],

'actif': True,

}

ret += [inputs]

return ret

def on_change_conventions_id(self, cr, uid, ids, convention_id, company_id, context=None):

res = {'value':{'seetek_line_ids': self.get_inputs(cr, uid, ids, convention_id, company_id, context=context),

}

}

return res

Avatar
Buang
Jawaban Terbai

hello,

Actually on change event is called when we change field on which we have defined on change function you are getting issue while clicking on create button because you have not added if condition of field in your function

try like this,

def get_inputs(self, cr, uid,ids, convention_id, company_id, context=None):

ret = []

if convention_id:

    obj = self.pool.get('seetek.convention.categorie.line')

    obj_ids = obj.search(cr, uid, [('convention_id', '=', convention_id)])

    res = obj.read(cr, uid, obj_ids, ['nom','nature','id'], context)

    for r in res :


hope it will slove your problem...

Avatar
Buang
Penulis Jawaban Terbai

I have resolved the problem and it works fine:

Here is the answer:

def on_change_conventions_id(self, cr, uid, ids, convention_id, company_id, context=None):

if company_id == False:

My_error_Msg = 'Please, select your COMPANY'

raise osv.except_osv(_("Error!"), _(My_error_Msg))

else:

res = {'value':{'seetek_line_ids': self.get_inputs(cr, uid, ids, convention_id, company_id, context=context),

}

}

return res

It works perfectly :)

Avatar
Buang
Post Terkait Replies Tampilan Aktivitas
0
Mar 25
1291
0
Jan 25
3396
1
Agu 23
14713
change password Diselesaikan
1
Agu 23
13316
1
Jul 23
10349