diff --git a/addons/sale_timesheet/models/project.py b/addons/sale_timesheet/models/project.py index a54f1eaa034fd318645675aabc7dfa382c5d1f02..09475410a900ffbbdba438e013035143e9825a89 100644 --- a/addons/sale_timesheet/models/project.py +++ b/addons/sale_timesheet/models/project.py @@ -58,8 +58,19 @@ class ProjectTask(models.Model): sale_line_id = fields.Many2one('sale.order.line', 'Sales Order Item', domain="[('is_service', '=', True), ('order_partner_id', '=', partner_id)]") + @api.model + def create(self, values): + # sub task has the same so line than their parent + if 'parent_id' in values: + values['sale_line_id'] = self.env['project.task'].browse(values['parent_id']).sudo().sale_line_id.id + return super(ProjectTask, self).create(values) + @api.multi def write(self, values): + # sub task has the same so line than their parent + if 'parent_id' in values: + values['sale_line_id'] = self.env['project.task'].browse(values['parent_id']).sudo().sale_line_id.id + result = super(ProjectTask, self).write(values) # reassign SO line on related timesheet lines if 'sale_line_id' in values: diff --git a/addons/sale_timesheet/views/project_task_views.xml b/addons/sale_timesheet/views/project_task_views.xml index d952910d6069e245566b699ceef309675c86be70..1458e35dc40cf28179c771434c1fe7b03c304051 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"/> </xpath> <field name="user_id" position="after"> - <field name="sale_line_id" string="Sales Order Item" attrs="{'invisible': [('partner_id', '=', False)]}" options='{"no_open": True, "no_create": True}' context="{'sale_show_order_product_name': True}"/> + <field name="sale_line_id" string="Sales Order Item" attrs="{'invisible': [('partner_id', '=', False)], 'readonly': [('parent_id', '!=', False)]}" options='{"no_open": True, "no_create": True}' context="{'sale_show_order_product_name': True}"/> </field> </field> </record>