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

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

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

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
Zrušit
Related Posts Odpovědi Zobrazení Aktivita
0
bře 25
1337
0
led 25
3429
1
srp 23
14746
1
srp 23
13378
1
čvc 23
10379