Help

0

How to set a Dynamic domain in odooV14 on a One2many list?

Avatar
Dries Cox

Hello, 

I am looking for a way to set a dynamic filter on the order lines in a tree view,  so that the lines are filtered depending on a field on the parent order. I tried to work with dynamic domains, but when I do that I get a warning in the console:

odoo.models: onchange method SaleOrder.onchange_active_so_section returned a domain, this is deprecated

Also the list isn't filtered, all the lines stay visible. What is the correct way to do this in odoo14?

Here is my code:

class SaleOrder(models.Model):
_inherit =
'sale.order'

""" FIELDS """
active_so_section_id = fields.Many2one('sale.so_section', string="Active Section")
    
@api.onchange
('active_so_section_id')
def onchange_active_so_section(self):
domain = {'domain': {'order_line': [('id', '=',                                     self.active_so_section_id.order_line_id.id)]}}

    return domain
The domain I get from this onchange function is like:
{'domain': {'order_line': [('id', '=', 67)]}}

Avatar
Discard