From d0be20363b640926c92f8f215581eeea13e5de8a Mon Sep 17 00:00:00 2001 From: Marc Durepos Date: Thu, 29 Jun 2023 13:26:40 -0400 Subject: [PATCH] bemade_fsm: Linked equipment from sale order to creaed task on SO confirmation. Fixes #48. --- bemade_fsm/models/sale_order.py | 3 ++- bemade_fsm/tests/__init__.py | 2 +- ...k_template_sale_order.py => test_sale_order.py} | 14 ++++++++++++-- bemade_fsm/tests/test_so_task_contacts.py | 4 ++-- bemade_fsm/views/task_views.xml | 2 +- 5 files changed, 18 insertions(+), 7 deletions(-) rename bemade_fsm/tests/{test_task_template_sale_order.py => test_sale_order.py} (88%) diff --git a/bemade_fsm/models/sale_order.py b/bemade_fsm/models/sale_order.py index 69ef9f7..ff287d1 100644 --- a/bemade_fsm/models/sale_order.py +++ b/bemade_fsm/models/sale_order.py @@ -49,7 +49,7 @@ class SaleOrderLine(models.Model): :param project: record of project.project in which the task should be created :return task: record of the created task - Override to add the logic needed to implement task templates.""" + Override to add the logic needed to implement task templates and equipment linkages.""" def _create_task_from_template(project, template, parent): """ Recursively generates the task and any subtasks from a project.task.template. @@ -98,4 +98,5 @@ class SaleOrderLine(models.Model): "This task has been created from: %s (%s)") % ( self.order_id.id, self.order_id.name, self.product_id.name) task.message_post(body=task_msg) + task.equipment_id = self.order_id.equipment_id return task diff --git a/bemade_fsm/tests/__init__.py b/bemade_fsm/tests/__init__.py index 955686d..5e3c145 100644 --- a/bemade_fsm/tests/__init__.py +++ b/bemade_fsm/tests/__init__.py @@ -1,6 +1,6 @@ from . import test_bemade_fsm_common from . import test_task_template -from . import test_task_template_sale_order +from . import test_sale_order from . import test_equipment from . import test_fsm_contact_setting from . import test_so_task_contacts diff --git a/bemade_fsm/tests/test_task_template_sale_order.py b/bemade_fsm/tests/test_sale_order.py similarity index 88% rename from bemade_fsm/tests/test_task_template_sale_order.py rename to bemade_fsm/tests/test_sale_order.py index 9fde384..8eb2266 100644 --- a/bemade_fsm/tests/test_task_template_sale_order.py +++ b/bemade_fsm/tests/test_sale_order.py @@ -1,9 +1,10 @@ from .test_task_template import TestTaskTemplateCommon +from .test_equipment import TestEquipmentCommon from odoo.tests.common import tagged @tagged("-at_install", "post_install") -class TestTaskTemplateSalesOrder(TestTaskTemplateCommon): +class TestSalesOrder(TestTaskTemplateCommon): @classmethod def setUpClass(cls): super().setUpClass() @@ -78,10 +79,19 @@ class TestTaskTemplateSalesOrder(TestTaskTemplateCommon): self.assertTrue(self.child_task_2.name in sol.task_id.child_ids[1].name) self.assertTrue(sol.task_id.child_ids[1].child_ids and len(sol.task_id.child_ids.child_ids) == 1) self.assertTrue(self.grandchild_task.name in sol.task_id.child_ids.child_ids[0].name) + so = self.sale_order2 so.action_confirm() sol1 = so.order_line[0] sol2 = so.order_line[1] assert_structure(sol1) assert_structure(sol2) - \ No newline at end of file + + def test_order_confirmation_equipment(self): + so = self.sale_order1 + equipment = self.env['bemade_fsm.equipment'].create( + {'name': 'test equipment', 'partner_location_id': so.partner_shipping_id.id}) + so.equipment_id = equipment.id + so.action_confirm() + task = so.order_line[0].task_id + self.assertTrue(task.equipment_id == equipment) diff --git a/bemade_fsm/tests/test_so_task_contacts.py b/bemade_fsm/tests/test_so_task_contacts.py index 37df599..f0def24 100644 --- a/bemade_fsm/tests/test_so_task_contacts.py +++ b/bemade_fsm/tests/test_so_task_contacts.py @@ -1,9 +1,9 @@ -from .test_task_template_sale_order import TestTaskTemplateSalesOrder +from .test_sale_order import TestSalesOrder from odoo import Command from odoo.tests.common import Form -class TestSaleOrderTaskContacts(TestTaskTemplateSalesOrder): +class TestSaleOrderTaskContacts(TestSalesOrder): @classmethod def setUpClass(cls): super().setUpClass() diff --git a/bemade_fsm/views/task_views.xml b/bemade_fsm/views/task_views.xml index b673911..d94ad8b 100644 --- a/bemade_fsm/views/task_views.xml +++ b/bemade_fsm/views/task_views.xml @@ -8,7 +8,7 @@ - +