Files
Odoo-18.0-20251222/sale_product_identification/models/product_template.py
tocmo0nlord adbe430761
Some checks failed
pre-commit / pre-commit (push) Has been cancelled
tests / Detect unreleased dependencies (push) Has been cancelled
tests / test with OCB (push) Has been cancelled
tests / test with Odoo (push) Has been cancelled
Initial commit: Odoo 18.0-20251222 extra-addons
2026-03-13 20:43:25 +00:00

43 lines
1.6 KiB
Python
Executable File

# Copyright 2025 Binhex <https://www.binhex.cloud>
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo import _, api, fields, models
from odoo.exceptions import ValidationError
class ProductTemplate(models.Model):
_inherit = "product.template"
required_identification = fields.Boolean(default=False)
product_tmpl_category_ids = fields.One2many(
"product.template.id_category", "product_tmpl_id"
)
@api.constrains("product_tmpl_category_ids")
def _check_product_tmpl_category_ids(self):
ProductTemplateIdCategory = self.env["product.template.id_category"]
for product_templ in self:
category_ids = ProductTemplateIdCategory.sudo()._read_group(
[
("product_tmpl_id", "=", product_templ.id),
],
["category_id"],
["category_id:count"],
order="category_id:count DESC",
)
if category_ids and category_ids[0][1] > 1:
category_ids = list(filter(lambda x: x[1] > 1, category_ids))
raise ValidationError(
_(
"There are repeated categories in the identifications "
"configuration, the quantities are shown below.\n%(categories)s"
)
% {
"categories": "\n".join(
f"{category[0].name}:\u2009{category[1]}"
for category in category_ids
)
}
)