bemade_fsm: Linked equipment from sale order to creaed task on SO confirmation. Fixes #48.

This commit is contained in:
Marc Durepos 2023-06-29 13:26:40 -04:00
parent 4065e036ce
commit d0be20363b
5 changed files with 18 additions and 7 deletions

View file

@ -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: <a href=# data-oe-model=sale.order data-oe-id=%d>%s</a> (%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

View file

@ -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

View file

@ -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)
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)

View file

@ -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()

View file

@ -8,7 +8,7 @@
<field name="priority" eval="8"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='partner_id']" position="after">
<field name="equipment_id" domain="[('partner_location_id','=',partner_id)]"/>
<field name="equipment_id" domain="[('partner_location_id', '=', partner_id)]"/>
</xpath>
<xpath expr="//page[@name='extra_info']" position="after">
<page string="Field Service" name="field_service">