bemade_fsm: Linked equipment from sale order to creaed task on SO confirmation. Fixes #48.
This commit is contained in:
parent
4065e036ce
commit
d0be20363b
5 changed files with 18 additions and 7 deletions
|
|
@ -49,7 +49,7 @@ class SaleOrderLine(models.Model):
|
||||||
:param project: record of project.project in which the task should be created
|
:param project: record of project.project in which the task should be created
|
||||||
:return task: record of the created task
|
: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):
|
def _create_task_from_template(project, template, parent):
|
||||||
""" Recursively generates the task and any subtasks from a project.task.template.
|
""" 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)") % (
|
"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)
|
self.order_id.id, self.order_id.name, self.product_id.name)
|
||||||
task.message_post(body=task_msg)
|
task.message_post(body=task_msg)
|
||||||
|
task.equipment_id = self.order_id.equipment_id
|
||||||
return task
|
return task
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
from . import test_bemade_fsm_common
|
from . import test_bemade_fsm_common
|
||||||
from . import test_task_template
|
from . import test_task_template
|
||||||
from . import test_task_template_sale_order
|
from . import test_sale_order
|
||||||
from . import test_equipment
|
from . import test_equipment
|
||||||
from . import test_fsm_contact_setting
|
from . import test_fsm_contact_setting
|
||||||
from . import test_so_task_contacts
|
from . import test_so_task_contacts
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,10 @@
|
||||||
from .test_task_template import TestTaskTemplateCommon
|
from .test_task_template import TestTaskTemplateCommon
|
||||||
|
from .test_equipment import TestEquipmentCommon
|
||||||
from odoo.tests.common import tagged
|
from odoo.tests.common import tagged
|
||||||
|
|
||||||
|
|
||||||
@tagged("-at_install", "post_install")
|
@tagged("-at_install", "post_install")
|
||||||
class TestTaskTemplateSalesOrder(TestTaskTemplateCommon):
|
class TestSalesOrder(TestTaskTemplateCommon):
|
||||||
@classmethod
|
@classmethod
|
||||||
def setUpClass(cls):
|
def setUpClass(cls):
|
||||||
super().setUpClass()
|
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(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(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)
|
self.assertTrue(self.grandchild_task.name in sol.task_id.child_ids.child_ids[0].name)
|
||||||
|
|
||||||
so = self.sale_order2
|
so = self.sale_order2
|
||||||
so.action_confirm()
|
so.action_confirm()
|
||||||
sol1 = so.order_line[0]
|
sol1 = so.order_line[0]
|
||||||
sol2 = so.order_line[1]
|
sol2 = so.order_line[1]
|
||||||
assert_structure(sol1)
|
assert_structure(sol1)
|
||||||
assert_structure(sol2)
|
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)
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
from .test_task_template_sale_order import TestTaskTemplateSalesOrder
|
from .test_sale_order import TestSalesOrder
|
||||||
from odoo import Command
|
from odoo import Command
|
||||||
from odoo.tests.common import Form
|
from odoo.tests.common import Form
|
||||||
|
|
||||||
|
|
||||||
class TestSaleOrderTaskContacts(TestTaskTemplateSalesOrder):
|
class TestSaleOrderTaskContacts(TestSalesOrder):
|
||||||
@classmethod
|
@classmethod
|
||||||
def setUpClass(cls):
|
def setUpClass(cls):
|
||||||
super().setUpClass()
|
super().setUpClass()
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
<field name="priority" eval="8"/>
|
<field name="priority" eval="8"/>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<xpath expr="//field[@name='partner_id']" position="after">
|
<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>
|
||||||
<xpath expr="//page[@name='extra_info']" position="after">
|
<xpath expr="//page[@name='extra_info']" position="after">
|
||||||
<page string="Field Service" name="field_service">
|
<page string="Field Service" name="field_service">
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue