bemade_fsm: fix equipment name_search
This commit is contained in:
parent
017bde45dd
commit
64034e280c
6 changed files with 46 additions and 3 deletions
|
|
@ -53,6 +53,7 @@ class Task(models.Model):
|
||||||
root_ancestor = fields.Many2one(
|
root_ancestor = fields.Many2one(
|
||||||
comodel_name="project.task",
|
comodel_name="project.task",
|
||||||
compute="_compute_root_ancestor",
|
compute="_compute_root_ancestor",
|
||||||
|
recursive=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
def _compute_is_closed(self):
|
def _compute_is_closed(self):
|
||||||
|
|
|
||||||
|
|
@ -6,3 +6,4 @@ from . import test_fsm_visit
|
||||||
from . import test_task
|
from . import test_task
|
||||||
from . import test_task_report
|
from . import test_task_report
|
||||||
from . import test_settings
|
from . import test_settings
|
||||||
|
from . import test_equipment
|
||||||
|
|
|
||||||
32
bemade_fsm/tests/test_equipment.py
Normal file
32
bemade_fsm/tests/test_equipment.py
Normal file
|
|
@ -0,0 +1,32 @@
|
||||||
|
from odoo.addons.bemade_fsm.tests.test_bemade_fsm_common import BemadeFSMBaseTest
|
||||||
|
from odoo.tests import tagged, Form
|
||||||
|
|
||||||
|
|
||||||
|
@tagged("-at_install", "post_install")
|
||||||
|
class TestEquipment(BemadeFSMBaseTest):
|
||||||
|
def test_equipment_search_domain_on_sale_order(self):
|
||||||
|
"""Equipment from other clients was showing up in sale order line
|
||||||
|
equipment choices. Make sure this doesn't happen."""
|
||||||
|
partner = self._generate_partner()
|
||||||
|
partner_2 = self._generate_partner()
|
||||||
|
equipment_1 = self._generate_equipment(partner=partner)
|
||||||
|
equipment_2 = self._generate_equipment(partner_2)
|
||||||
|
sale_order = self._generate_sale_order(partner=partner)
|
||||||
|
product = self._generate_product()
|
||||||
|
self.assertEqual(sale_order.valid_equipment_ids, equipment_1)
|
||||||
|
|
||||||
|
name_search_results = self.env["fsm.equipment"].name_search(
|
||||||
|
args=[
|
||||||
|
"&",
|
||||||
|
["id", "in", sale_order.valid_equipment_ids.ids],
|
||||||
|
"!",
|
||||||
|
["id", "in", []],
|
||||||
|
],
|
||||||
|
limit=8,
|
||||||
|
name="test",
|
||||||
|
operator="ilike",
|
||||||
|
)
|
||||||
|
self.assertNotIn(
|
||||||
|
(equipment_2.id, equipment_2.display_name), name_search_results
|
||||||
|
)
|
||||||
|
self.assertIn((equipment_1.id, equipment_1.display_name), name_search_results)
|
||||||
|
|
@ -34,7 +34,6 @@
|
||||||
name="default_equipment_ids"
|
name="default_equipment_ids"
|
||||||
context="{'default_partner_id': partner_shipping_id,}"
|
context="{'default_partner_id': partner_shipping_id,}"
|
||||||
widget="many2many_tags"
|
widget="many2many_tags"
|
||||||
domain="[('id', 'in', valid_equipment_ids)]"
|
|
||||||
groups="account.group_delivery_invoice_address"
|
groups="account.group_delivery_invoice_address"
|
||||||
/>
|
/>
|
||||||
</group>
|
</group>
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
from odoo import models, fields, api, _
|
from odoo import models, fields, api, _
|
||||||
|
from odoo.osv import expression
|
||||||
|
|
||||||
|
|
||||||
class Equipment(models.Model):
|
class Equipment(models.Model):
|
||||||
|
|
@ -56,9 +57,11 @@ class Equipment(models.Model):
|
||||||
|
|
||||||
@api.model
|
@api.model
|
||||||
def name_search(self, name="", args=None, operator="ilike", limit=100):
|
def name_search(self, name="", args=None, operator="ilike", limit=100):
|
||||||
|
|
||||||
args = args or []
|
args = args or []
|
||||||
if name:
|
domain = expression.AND(
|
||||||
equipments = self.search(
|
[
|
||||||
|
args,
|
||||||
[
|
[
|
||||||
"|",
|
"|",
|
||||||
"|",
|
"|",
|
||||||
|
|
@ -66,6 +69,12 @@ class Equipment(models.Model):
|
||||||
("name", operator, name),
|
("name", operator, name),
|
||||||
("partner_id.name", operator, name),
|
("partner_id.name", operator, name),
|
||||||
],
|
],
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
if name:
|
||||||
|
equipments = self.search(
|
||||||
|
domain,
|
||||||
limit=limit,
|
limit=limit,
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,7 @@ class Partner(models.Model):
|
||||||
|
|
||||||
@api.depends(
|
@api.depends(
|
||||||
"equipment_ids",
|
"equipment_ids",
|
||||||
|
"child_ids",
|
||||||
"child_ids.company_type",
|
"child_ids.company_type",
|
||||||
"child_ids.equipment_ids",
|
"child_ids.equipment_ids",
|
||||||
)
|
)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue