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(
|
||||
comodel_name="project.task",
|
||||
compute="_compute_root_ancestor",
|
||||
recursive=True,
|
||||
)
|
||||
|
||||
def _compute_is_closed(self):
|
||||
|
|
|
|||
|
|
@ -6,3 +6,4 @@ from . import test_fsm_visit
|
|||
from . import test_task
|
||||
from . import test_task_report
|
||||
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"
|
||||
context="{'default_partner_id': partner_shipping_id,}"
|
||||
widget="many2many_tags"
|
||||
domain="[('id', 'in', valid_equipment_ids)]"
|
||||
groups="account.group_delivery_invoice_address"
|
||||
/>
|
||||
</group>
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
from odoo import models, fields, api, _
|
||||
from odoo.osv import expression
|
||||
|
||||
|
||||
class Equipment(models.Model):
|
||||
|
|
@ -56,9 +57,11 @@ class Equipment(models.Model):
|
|||
|
||||
@api.model
|
||||
def name_search(self, name="", args=None, operator="ilike", limit=100):
|
||||
|
||||
args = args or []
|
||||
if name:
|
||||
equipments = self.search(
|
||||
domain = expression.AND(
|
||||
[
|
||||
args,
|
||||
[
|
||||
"|",
|
||||
"|",
|
||||
|
|
@ -66,6 +69,12 @@ class Equipment(models.Model):
|
|||
("name", operator, name),
|
||||
("partner_id.name", operator, name),
|
||||
],
|
||||
]
|
||||
)
|
||||
|
||||
if name:
|
||||
equipments = self.search(
|
||||
domain,
|
||||
limit=limit,
|
||||
)
|
||||
else:
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@ class Partner(models.Model):
|
|||
|
||||
@api.depends(
|
||||
"equipment_ids",
|
||||
"child_ids",
|
||||
"child_ids.company_type",
|
||||
"child_ids.equipment_ids",
|
||||
)
|
||||
|
|
|
|||
Loading…
Reference in a new issue