From 1d019731a502c2027aa740784e4c4b42868fb1c9 Mon Sep 17 00:00:00 2001 From: Denis Roussel Date: Fri, 5 Jul 2024 14:56:18 +0200 Subject: [PATCH] [IMP] stock_package_type_category: Add category to package type display name --- .../models/stock_package_type.py | 28 +++++++++++++++++-- .../tests/test_stock_package_type_category.py | 20 +++++++++++++ 2 files changed, 46 insertions(+), 2 deletions(-) diff --git a/stock_package_type_category/models/stock_package_type.py b/stock_package_type_category/models/stock_package_type.py index 6654cbc81..d3bb206ee 100644 --- a/stock_package_type_category/models/stock_package_type.py +++ b/stock_package_type_category/models/stock_package_type.py @@ -1,7 +1,6 @@ # Copyright 2024 ACSONE SA/NV # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). - -from odoo import fields, models +from odoo import api, fields, models class StockPackageType(models.Model): @@ -14,3 +13,28 @@ class StockPackageType(models.Model): help="This is the category this package type belongs to", index="btree_not_null", ) + + @api.depends("category_id", "category_id.code") + def _compute_display_name(self): + res = super()._compute_display_name() + for package_type in self: + if package_type.category_id: + package_type.display_name = " ".join( + [ + package_type.display_name, + str("(" + package_type.category_id.code + ")"), + ] + ) + return res + + @property + def _rec_names_search(self): + """ + Adds the category code and name in name search + """ + rec_names_search = super()._rec_names_search + if not rec_names_search: + return ["name", "category_id.name", "category_id.code"] + else: + rec_names_search.extend(["category_id.name", "category_id.code"]) + return rec_names_search diff --git a/stock_package_type_category/tests/test_stock_package_type_category.py b/stock_package_type_category/tests/test_stock_package_type_category.py index a3db37eab..7ec8b5d3f 100644 --- a/stock_package_type_category/tests/test_stock_package_type_category.py +++ b/stock_package_type_category/tests/test_stock_package_type_category.py @@ -22,3 +22,23 @@ class TestPackageCategory(BaseCommon): "code": "DESK", } ) + + def test_category_search(self): + self.categ = self.category_obj.create( + { + "name": "Test Category", + "code": "TEST", + } + ) + package_type = self.env["stock.package.type"].create( + { + "name": "Little Box", + "category_id": self.categ.id, + } + ) + + self.assertEqual("Little Box (TEST)", package_type.display_name) + + package_search = self.env["stock.package.type"].name_search("TEST") + + self.assertEqual([(package_type.id, package_type.name)], package_search)