Reputation: 1382
preload = fields.Boolean(related='project_id.preload', string='Preload Templates')
part_template_ids = fields.Many2many(
'project.part.template', string='Part Templates', required=True,
default='_default_part_template_ids')
def _default_part_template_ids(self):
domain = [('case_default', '=', True)]
return self.env['project.part.template'].search(domain)
my goal is to change part_template_ids default based on preload field. If preload is True then part_template_ids default='_default_part_template_ids' if preload is false then default for part_template_ids is false too. how can i do this?
Upvotes: 0
Views: 1278
Reputation: 14768
At first you have to add a default value to preload
preload = fields.Boolean(
related='project_id.preload', string='Preload Templates',
default=False)
That will trigger onchange events, even on initial creation. You can use that to fill default values for other fields.
@api.onchange('preload')
@api.multi
def onchange_preload(self):
""" Preloads part templates if set to true"""
if self.preload:
domain = [('case_default', '=', True)]
self.part_template_ids = self.env['project.part.template'].search(domain)
else:
self.part_template_ids = self.env['project.part.template']
Upvotes: 1