From 07c14ba8ccdb06bb1160f202cb6be3d5dc0a6b92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9rome=20Maes?= Date: Fri, 29 Sep 2017 17:00:46 +0200 Subject: [PATCH] [FIX] sale: add name_get for sale order line Since procurement is dead, selecting a SO line on task to reinvoice it get the list of so line description in dropdown. Define a 'name_get' method is required. So avoid performance issue, we only customize it (order name and product name) with a context key, like we did for Sales Order. --- addons/sale/models/sale.py | 21 +++++++++++++++++++ .../views/project_task_views.xml | 2 +- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/addons/sale/models/sale.py b/addons/sale/models/sale.py index a58a6d3dacb..9138614c99c 100644 --- a/addons/sale/models/sale.py +++ b/addons/sale/models/sale.py @@ -1036,6 +1036,27 @@ class SaleOrderLine(models.Model): ) self.price_unit = self.env['account.tax']._fix_tax_included_price_company(self._get_display_price(product), product.taxes_id, self.tax_id, self.company_id) + @api.multi + def name_get(self): + if self._context.get('sale_show_order_product_name'): + result = [] + for so_line in self: + name = '%s - %s' % (so_line.order_id.name, so_line.product_id.name) + result.append((so_line.id, name)) + return result + return super(SaleOrderLine, self).name_get() + + @api.model + def name_search(self, name='', args=None, operator='ilike', limit=100): + if self._context.get('sale_show_order_product_name'): + if operator in ('ilike', 'like', '=', '=like', '=ilike'): + domain = expression.AND([ + args or [], + ['|', ('order_id.name', operator, name), ('product_id.name', operator, name)] + ]) + return self.search(domain, limit=limit).name_get() + return super(SaleOrderLine, self).name_search(name, args, operator, limit) + @api.multi def unlink(self): if self.filtered(lambda x: x.state in ('sale', 'done')): diff --git a/addons/sale_timesheet/views/project_task_views.xml b/addons/sale_timesheet/views/project_task_views.xml index c2fc5e8c635..d952910d606 100644 --- a/addons/sale_timesheet/views/project_task_views.xml +++ b/addons/sale_timesheet/views/project_task_views.xml @@ -29,7 +29,7 @@ string="Sales Order"/> - +