From d0022ef2a71df5e6c5cdc0c6d1c3d72672cd55fb Mon Sep 17 00:00:00 2001 From: jem-odoo Date: Wed, 12 Sep 2018 09:41:30 +0200 Subject: [PATCH] [FIX] sale_timesheet: generated project must be active When choosing a project template on a service (product config), and then archive it, the generated project on sale line confirmation will be inactive too. This commit forces the generated project to be active. Task #1884328 --- addons/sale_timesheet/models/sale_order.py | 1 + addons/sale_timesheet/tests/test_sale_service.py | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/addons/sale_timesheet/models/sale_order.py b/addons/sale_timesheet/models/sale_order.py index 714b7dc2882..9f7613ccf51 100644 --- a/addons/sale_timesheet/models/sale_order.py +++ b/addons/sale_timesheet/models/sale_order.py @@ -223,6 +223,7 @@ class SaleOrderLine(models.Model): 'partner_id': self.order_id.partner_id.id, 'sale_line_id': self.id, 'sale_order_id': self.order_id.id, + 'active': True, } if self.product_id.project_template_id: values['name'] = "%s - %s" % (values['name'], self.product_id.project_template_id.name) diff --git a/addons/sale_timesheet/tests/test_sale_service.py b/addons/sale_timesheet/tests/test_sale_service.py index 4fdbdc227c2..e13dd6c56c0 100644 --- a/addons/sale_timesheet/tests/test_sale_service.py +++ b/addons/sale_timesheet/tests/test_sale_service.py @@ -287,6 +287,7 @@ class TestSaleService(TestCommonSaleTimesheetNoChart): project_template2 = self.env['project.project'].create({ 'name': 'Second Project TEMPLATE for services', 'allow_timesheets': True, + 'active': False, # this template is archived }) Stage = self.env['project.task.type'].with_context(default_project_id=project_template2.id) stage1_tmpl2 = Stage.create({ @@ -367,6 +368,11 @@ class TestSaleService(TestCommonSaleTimesheetNoChart): self.assertTrue(so_line4.task_id, "Line4 should have create a new task, even if no project created.") self.assertTrue(so_line5.project_id, "Line5 should have create a project based on template B") + # check all generated project should be active, even if the template is not + self.assertTrue(so_line1.project_id.active, "Project of Line1 should be active") + self.assertTrue(so_line2.project_id.active, "Project of Line2 should be active") + self.assertTrue(so_line5.project_id.active, "Project of Line5 should be active") + # check generated stuff are correct self.assertTrue(so_line1.project_id in self.project_template_state.project_ids, "Stage 1 from template B should be part of project from so line 1") self.assertTrue(so_line1.project_id in self.project_template_state.project_ids, "Stage 1 from template B should be part of project from so line 1")