From 45396f7966bd1f9ffa062e45a665fbf328f65bd5 Mon Sep 17 00:00:00 2001 From: jem-odoo Date: Fri, 9 Mar 2018 15:54:06 +0100 Subject: [PATCH] [FIX] sale_timesheet: default so line for subtasks When creating a task in a project generated from an SO line, we want this to be linked to that sale line too. When creating a subtask, the sale line is forced to be the one of the parent, in `create` method. But we want to see it on the form view. --- addons/sale_timesheet/models/project.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/addons/sale_timesheet/models/project.py b/addons/sale_timesheet/models/project.py index 09475410a90..16dbf838655 100644 --- a/addons/sale_timesheet/models/project.py +++ b/addons/sale_timesheet/models/project.py @@ -56,7 +56,16 @@ class Project(models.Model): class ProjectTask(models.Model): _inherit = "project.task" - sale_line_id = fields.Many2one('sale.order.line', 'Sales Order Item', domain="[('is_service', '=', True), ('order_partner_id', '=', partner_id)]") + @api.model + def _default_sale_line_id(self): + sale_line_id = False + if self._context.get('default_parent_id'): + sale_line_id = self.env['project.task'].browse(self._context['default_parent_id']).sale_line_id.id + if not sale_line_id and self._context.get('default_project_id'): + sale_line_id = self.env['project.project'].browse(self._context['default_project_id']).sale_line_id.id + return sale_line_id + + sale_line_id = fields.Many2one('sale.order.line', 'Sales Order Item', default=_default_sale_line_id, domain="[('is_service', '=', True), ('order_partner_id', '=', partner_id)]") @api.model def create(self, values):