Hello
I have problem a problem with this class
jobStates= [('active', 'Active')
('contract_end', 'End of Contract'),('fired', 'Fired'),class HrEmployeeJobHistory(models.Model):
('passed_away', 'Passed Away'),
('promoted', 'Promoted'),
('resigned', 'Resigned'),
('retired', 'Retired')]
_name = 'hr.job.history'
_description = 'Employee Job History'
job_id = fields.Many2one('hr.job', string='Job', required=True)
employee_id = fields.Many2one('hr.employee', string='Employee', required=True)
start_date = fields.Date('Start Date', required=True)
end_date = fields.Date('End Date')
state = fields.Selection(jobStates, 'Status', default='active', required=True)
done = fields.Boolean('Done', default=False, compute='_compute_done', store=True)
@api.one
@api.depends('state')
def _compute_done(self):
self.done = False if self.state=="active" else True
and its view
<record model="ir.ui.view" id="view_hr_employee_qualification_form">
<field name="name">hr.employee.qualification.form.inherit</field>
<field name="model">hr.employee</field>
<field name="inherit_id" ref="hr.view_employee_form"/>
<field name="arch" type="xml"> <notebook position="inside">
<page string="Job History">
<field name="job_history_ids">
<tree editable="top" delete="0">
<field name="job_id" options="{'no_open': True} attrs="{'readonly':[('done','=',True)]}" />
<field name="start_date" attrs="{'readonly':[('done','=',True)]}"/>
<field name="end_date" attrs="{'readonly':[('done','=',True)], 'required':[('state','!=','active')]}"/>
<field name="state" attrs="{'readonly':[('done','=',True)]}" /> <field name="done" invisible="1"/>
</tree>
</field>
</page>
The idea is control editing record by using done field (True= not editable). If state field set to (not active) that means it is done and record is supposed to be un-editable.
Creating a record goes fine. But once I change state to other selection (not active) and hit save. The changes are not saved and state goes back to active. If I remove
<field name="state" attrs="{'readonly':[('done','=',True)]}" />
and put
<field name="state" />
saving data works but I loose control editable. I tried @api.onchange and @api.model def write. Same problem.
Can you help on this?