diff --git a/models/sale_order.py b/models/sale_order.py index bf51ace..0605e28 100644 --- a/models/sale_order.py +++ b/models/sale_order.py @@ -44,6 +44,7 @@ class SaleOrderLine(models.Model): vals['parent_id'] = parent and parent.id vals['user_ids'] = template.assignees.ids vals['tag_ids'] = template.tags.ids + vals['planned_hours'] = template.planned_hours return vals tmpl = self.product_id.task_template_id diff --git a/models/task_template.py b/models/task_template.py index 128edbd..f95b3c7 100644 --- a/models/task_template.py +++ b/models/task_template.py @@ -18,6 +18,7 @@ class TaskTemplate(models.Model): subtasks = fields.One2many("project.task.template", inverse_name="parent", string="Subtask Templates") sequence = fields.Integer(string="Sequence") company_id = fields.Many2one("res.company", string="Company", index=1, default=_current_company) + planned_hours = fields.Float("Initially Planned Hours") def action_open_task(self): return { diff --git a/tests/test_task_template.py b/tests/test_task_template.py index ec42aca..2857b6c 100644 --- a/tests/test_task_template.py +++ b/tests/test_task_template.py @@ -11,6 +11,7 @@ class TestTaskTemplateCommon(FSMManagerUserTransactionCase): @classmethod def setUpClass(cls): super().setUpClass() + cls.PLANNED_HOURS = 6 hours_uom = cls.env['uom.uom'].search([('name', '=', 'Hour')]) or False # Test product to use with the various tests cls.task1 = cls.env['project.task.template'].create({ @@ -45,6 +46,7 @@ class TestTaskTemplateCommon(FSMManagerUserTransactionCase): # Set up a task template tree with 2 children and 1 grandchild cls.parent_task = cls.env['project.task.template'].create({ 'name': 'Parent Template', + 'planned_hours': cls.PLANNED_HOURS, }) cls.child_task_1 = cls.env['project.task.template'].create({ 'name': 'Child Template 1', diff --git a/tests/test_task_template_sale_order.py b/tests/test_task_template_sale_order.py index c19a892..176c222 100644 --- a/tests/test_task_template_sale_order.py +++ b/tests/test_task_template_sale_order.py @@ -67,6 +67,7 @@ class TestTaskTemplateSalesOrder(TestTaskTemplateCommon): self.assertTrue(task2) self.assertTrue(self.task1.name in task1.name) self.assertTrue(self.task1.name in task2.name) + self.assertTrue(self.task1.planned_hours == task1.planned_hours) def test_order_confirmation_tree_template(self): def assert_structure(sol): diff --git a/views/task_template_views.xml b/views/task_template_views.xml index 2ced6c2..bbdaed1 100644 --- a/views/task_template_views.xml +++ b/views/task_template_views.xml @@ -19,6 +19,7 @@ + @@ -57,6 +58,7 @@ + @@ -71,6 +73,7 @@ +