Help

0

Open record when search from Wizard.

Avatar
Syed Hamza

Hi, everyone I'm trying to make a search wizard which will find records in res.partner based on our given condition. For example, I'm giving a value in CNIC field to search if the record exists on a button click it works correctly and find the existing record (if any) but it does not return the form of existing record it opens the new form always. Can anyone help me to return an existing form with all the values? 

Here's my function:

def existing_record(self):
search = []
if self.cnic:
search.append(('cnic', '=', self.cnic))
else:
raise ValidationError(_("Please Enter CNIC."))

if search:
partner = self.env['res.partner'].search(search)
if not partner:
raise ValidationError(_("This member is not yet created. So, you can not see his details."))

return {
'name': 'Member Form',
'view_mode': 'form',
'res_model': 'res.partner',
'view_id': self.env.ref('real_estate.view_partner_form').id,
'domain': [('cnic','=',self.cnic)],
'context': {
"default_is_member": True,
},
'type': 'ir.actions.act_window',
Avatar
Discard
2 Answers
1
Avatar
Jack Dane
Best Answer

Hello Syed,

I believe the issue is that you haven't given the window action a "res_id". This value specifies what record needs to be loaded into the view. Source

The answer which Aktiv Software has provided suggests that you have forgotten to place an ending curly brace at the end of your window action, while not wrong I don't believe this to be your issue. As this would usually bring up a server error, I would imagine you just didn't copy the end into your example. 

If you change the window action to:

return {
'name': 'Member Form',
'view_mode': 'tree,form',
'res_model': 'res.partner',
'res_id': partner.id,
'view_id': self.env.ref('real_estate.view_partner_form').id,
'domain': [('id','in', partner.ids)],
'context': {
"default_is_member": True,
},
'type': 'ir.actions.act_window'
}
It should work, however, you would need to have a check before, such as:

if partner:
    # place window action
else:
    # do something if you haven't found a partner
To make sure the partner exists. 

I hope this helps,

Thanks, 

1 Comment
Avatar
Discard
Avatar
Syed Hamza
-

thanks man it helped.

0
Best Answer

Hello Syed Hamza,

please try for this domain

return {

'name': 'Member Form',

'view_mode': 'tree,form',

'res_model': 'res.partner',

'view_id': self.env.ref('real_estate.view_partner_form').id,

'domain': [('id','in', partner.ids)],

'context': {

"default_is_member": True,

},

'type': 'ir.actions.act_window'

}

Thank you!

Regards,




Email:      odoo@aktivsoftware.com  

Skype: kalpeshmaheshwari

    

1 Comment
Avatar
Discard
Avatar
Syed Hamza
-

thanks for your response but the issue was coming bcz i was missing 'res_id'