oca-technical/odoo-bringout-oca-crm-crm_exception/crm_exception/models/crm_lead.py
2025-08-29 15:43:03 +02:00

38 lines
1 KiB
Python

# Copyright 2023 Quartile Limited
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo import api, models
from odoo.osv import expression
class CrmLead(models.Model):
_inherit = ["crm.lead", "base.exception"]
_name = "crm.lead"
_order = "main_exception_id asc, name desc"
def write(self, vals):
result = super().write(vals)
# To avoid a recursive call, write()
if "exception_ids" in vals:
return result
self._check_exception()
return result
@api.model
def _reverse_field(self):
return "crm_lead_ids"
def _rule_domain(self):
rule_domain = super()._rule_domain()
if self.stage_id:
rule_domain = expression.AND(
[
rule_domain,
[
"|",
("stage_ids", "in", tuple(self.stage_id.ids)),
("stage_ids", "=", False),
],
]
)
return rule_domain