From 3de02e6ec4360a548c3a22cd3621947b2c2ccad8 Mon Sep 17 00:00:00 2001 From: Jordi Ballester Alomar Date: Sun, 29 Dec 2019 07:52:11 +0100 Subject: [PATCH 1/2] define a name_search strategy for the product_mrp_area --- mrp_multi_level/models/product_mrp_area.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/mrp_multi_level/models/product_mrp_area.py b/mrp_multi_level/models/product_mrp_area.py index 6d14eca0c..d552c083e 100644 --- a/mrp_multi_level/models/product_mrp_area.py +++ b/mrp_multi_level/models/product_mrp_area.py @@ -8,6 +8,7 @@ from math import ceil from odoo import _, api, fields, models from odoo.exceptions import ValidationError +from odoo.osv import expression class ProductMRPArea(models.Model): @@ -134,6 +135,16 @@ class ProductMRPArea(models.Model): for area in self ] + @api.model + def _name_search( + self, name, args=None, operator="ilike", limit=100, name_get_uid=None + ): + if operator in ("ilike", "like", "=", "=like", "=ilike"): + args = expression.AND([args or [], [("product_id.name", operator, name)]]) + return super(ProductMRPArea, self)._name_search( + name, args=args, operator=operator, limit=limit, name_get_uid=name_get_uid + ) + def _compute_mrp_lead_time(self): produced = self.filtered(lambda r: r.supply_method == "manufacture") purchased = self.filtered(lambda r: r.supply_method == "buy") From 822a485dc51bef1a551843db758cbd6b850cd4d7 Mon Sep 17 00:00:00 2001 From: Lois Rilo Date: Wed, 11 Mar 2020 13:25:38 +0100 Subject: [PATCH 2/2] [FIX] mrp_multi_level: * remove unneded _rec_name. * extend _name_search to be more inline with name_get. --- mrp_multi_level/models/product_mrp_area.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/mrp_multi_level/models/product_mrp_area.py b/mrp_multi_level/models/product_mrp_area.py index d552c083e..5dec8455b 100644 --- a/mrp_multi_level/models/product_mrp_area.py +++ b/mrp_multi_level/models/product_mrp_area.py @@ -140,7 +140,18 @@ class ProductMRPArea(models.Model): self, name, args=None, operator="ilike", limit=100, name_get_uid=None ): if operator in ("ilike", "like", "=", "=like", "=ilike"): - args = expression.AND([args or [], [("product_id.name", operator, name)]]) + args = expression.AND( + [ + args or [], + [ + "|", + "|", + ("product_id.name", operator, name), + ("product_id.default_code", operator, name), + ("mrp_area_id.name", operator, name), + ], + ] + ) return super(ProductMRPArea, self)._name_search( name, args=args, operator=operator, limit=limit, name_get_uid=name_get_uid )