This question has been flagged
1 Reply
8392 Views

Hello there, 

I'm trying to create a domain on a Many2many field:

@api.onchange('name')
def onchange_domain_on_days(self):
res = {}
ids = []
employee_model = self.env['hr.employee']
all_employees = employee_model.search([])
for employee in all_employees:
if employee.user_id.store_id == self.working_hours_id.store_id:
ids.append(employee.id)
res['domain'] = {
'monday': [('id', 'in', ids)],
}
return res


This will work very well! BUT only if the field value 'name' changes.. Is there a way to apply this from the beginning?

Best regards

--

Alejandro

Avatar
Discard
Best Answer

Hi,

- One option is to make it a compute field of type Many2many. And you can add the above code on that function, according to what should be returned on that field.

- Another option is to override the view_init() which is triggered everytime showing a form view, you can add your code in that function.

This post also might be helpful, which describes another way:

https://www.odoo.com/es_ES/forum/help-1/question/how-to-apply-domain-filter-on-many2many-field-28988 


Avatar
Discard