diff --git a/partner_industry_secondary/models/res_partner_industry.py b/partner_industry_secondary/models/res_partner_industry.py index b191c0d4836..ce6b3b8d500 100644 --- a/partner_industry_secondary/models/res_partner_industry.py +++ b/partner_industry_secondary/models/res_partner_industry.py @@ -4,9 +4,11 @@ # Copyright 2018 Eficent Business and IT Consulting Services, S.L. # Copyright 2019 Tecnativa - Cristina Martin R. # Copyright 2025 Moduon - Eduardo de Miguel +# Copyright 2025, 2026 XCG SAS # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). from odoo import _, api, exceptions, fields, models +from odoo.tools import populate class ResPartnerIndustry(models.Model): @@ -51,18 +53,38 @@ def get_names(cat): @api.constrains("name", "parent_id") def _check_uniq_name(self): - if ( - self.search_count( - [("name", "=", self.name), ("parent_id", "=", self.parent_id.id)] - ) - > 1 - ): - raise exceptions.ValidationError( - _("Error! Industry with same name and parent already exists.") - ) + for industry in self: + if ( + self.search_count( + [ + ("name", "=", industry.name), + ("parent_id", "=", industry.parent_id.id), + ] + ) + > 1 + ): + raise exceptions.ValidationError( + _("Error! Industry with same name and parent already exists.") + ) def copy(self, default=None): default = default or {} if "name" not in default or default["name"] == self.name: default["name"] = self.name + " 2" return super(ResPartnerIndustry, self).copy(default=default) + + def _populate_factories(self): + result = super()._populate_factories() + modified_result = [] + # search for name to replace it to avoid empty names + for field_name, populate_function in result: + if field_name == "name": + modified_result.append( + ( + field_name, + populate.cartesian(["Industry name {counter}"], [1.0]), + ) + ) + else: + modified_result.append((field_name, populate_function)) + return modified_result diff --git a/partner_industry_secondary/readme/newsframents/+populate.feature.rst b/partner_industry_secondary/readme/newsframents/+populate.feature.rst new file mode 100644 index 00000000000..4d9a20cad73 --- /dev/null +++ b/partner_industry_secondary/readme/newsframents/+populate.feature.rst @@ -0,0 +1 @@ +Fix industry populate to take to handle required name.