From 548de070664d0fffb10468196c9e06b681313ec3 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 | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/mrp_multi_level/models/product_mrp_area.py b/mrp_multi_level/models/product_mrp_area.py index bf10b50cc..9fe8fc9bc 100644 --- a/mrp_multi_level/models/product_mrp_area.py +++ b/mrp_multi_level/models/product_mrp_area.py @@ -7,12 +7,14 @@ from math import ceil from odoo import api, fields, models, _ +from odoo.osv import expression from odoo.exceptions import ValidationError class ProductMRPArea(models.Model): _name = 'product.mrp.area' _description = 'Product MRP Area' + _rec_name = "product_id" active = fields.Boolean(default=True) mrp_area_id = fields.Many2one( @@ -132,6 +134,18 @@ class ProductMRPArea(models.Model): area.mrp_area_id.name, area.product_id.display_name)) 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) + @api.multi def _compute_mrp_lead_time(self): produced = self.filtered(lambda r: r.supply_method == "manufacture") From fb308c59ff30d86e1185bf1e80909aba9b4eae1e 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 | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mrp_multi_level/models/product_mrp_area.py b/mrp_multi_level/models/product_mrp_area.py index 9fe8fc9bc..9ad15df03 100644 --- a/mrp_multi_level/models/product_mrp_area.py +++ b/mrp_multi_level/models/product_mrp_area.py @@ -14,7 +14,6 @@ from odoo.exceptions import ValidationError class ProductMRPArea(models.Model): _name = 'product.mrp.area' _description = 'Product MRP Area' - _rec_name = "product_id" active = fields.Boolean(default=True) mrp_area_id = fields.Many2one( @@ -140,7 +139,10 @@ class ProductMRPArea(models.Model): if operator in ('ilike', 'like', '=', '=like', '=ilike'): args = expression.AND([ args or [], - [('product_id.name', operator, name)] + ['|', '|', + ('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,