Skip to Content
Meniu
Trebuie să fiți înregistrat pentru a interacționa cu comunitatea.
Această întrebare a fost marcată
2 Răspunsuri
3274 Vizualizări

I have created a "assign" button in Helpdesk Module which on click opens a Maintenance Request form with some data from helpdesk. And the problem is that I've to save the request manually every time. What should I do to save the maintenance request automatically and not affecting the current method on button click.

Here's my python method for button. 

@api.multi
def on_assigned(self):
return {
'res_model': 'maintenance.request',
'type': 'ir.actions.act_window',
'context': {
'default_helpdesk_id': self.id,
'default_name': self.name,
},
'domain': [('customer_id', '=', self.customer_id)],
'view_mode': 'form',
'view_type': 'form',
'res_id': self.env['maintenance.request'].search([('helpdesk_id', '=', self.id)]).id,
'view_id': self.env.ref("maintenance.hr_equipment_request_view_form").id,
}

I just want to add the "Save" functionality on this button click. Any luck? 

Imagine profil
Abandonează
Cel mai bun răspuns

Hi,

Here in the button click you are returning maintenance.request model with some default values inside the context, so for the record to be created you have to click the Save Button. As you need to create the record without clicking the save button, what you can do is that, create record in the maintenance.request model from code and return the created record id in the return.

@api.multi
def on_assigned(self):
vals = {
'helpdesk_id': self.id,
'name': self.name
}
# you can update above dictionary with other values and required fields
new_rec = self.env['maintenance.request'].create(vals)

return {
'name': _('Maintenance Request'),
'view_type': 'form',
'view_mode': 'form',
'view_id': self.env.ref("maintenance.hr_equipment_request_view_form").id,
'res_model': 'maintenance.request',
'domain': [('customer_id', '=', self.customer_id)],
'context': {
'default_helpdesk_id': self.id,
'default_name': self.name,
}, 'type': 'ir.actions.act_window',
'res_id': new_rec.id,
}

Thanks

Imagine profil
Abandonează
Autor Cel mai bun răspuns

Edited:

@niyas Raphy thanks for the help its working but it is showing the maintenance form. Can I redirect it back to previous form. How?

Imagine profil
Abandonează

'target': 'new' remove it and try

Related Posts Răspunsuri Vizualizări Activitate
2
aug. 20
5307
3
feb. 24
4627
2
mar. 22
5166
2
iul. 24
2312
1
iun. 24
4838