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

Hallo All,

Is there any way to change field value from Wizard?

eg: I have model hr.employee:

            state = fields.Selection(selection=[('active','Active'), ('inactive','Inactive')])

I have transient model hr.employee.wizard:

            state = fields.Selection(selection=[('active','Active'), ('inactive','Inactive')])


The thing is, i need to change the state from Wizard(hr.employee.wizard) and it also change the state in hr.employee.
I use @api.onchange but it didn't work.


Please advise.

Avatar
Zrušit
Nejlepší odpověď

Hi,

Try to do it using a button click, using the active_ids from the wizard model you can get the record id of the main model, using the browse get the corresponding record and you can update the record using the write operation.

If you install the CRM, you can see similar implementation in Mark as Lost button.


Thanks

Avatar
Zrušit
Autor

Thanks Niyas,

I learn it and its work fine with the model hr.employee.

this time i want to change the state only from 'open' to 'done' in model hr.contract from wizard when the state in wizard is 'inactive'

I try this in my wizard:

contract = self.env['hr.contract'].browse(self.env.context.get('active_ids'))

if contract.state == 'open':

contract.write({'state': 'done'})

but it return an error = 'The record has been deleted hr.contract(id), user(id)

do we can make domain in browse get function?

or something else, please advice

Related Posts Odpovědi Zobrazení Aktivita
5
pro 22
5411
2
úno 23
4018
1
led 21
5211
1
pro 19
2804
1
srp 24
2713