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

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.

Imagine profil
Abandonează
Cel mai bun răspuns

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

Imagine profil
Abandonează
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 Răspunsuri Vizualizări Activitate
5
dec. 22
5497
2
feb. 23
4116
1
ian. 21
5300
1
dec. 19
2846
1
aug. 24
2772