oca-ai/odoo-bringout-oca-ai-ai_oca_bridge/ai_oca_bridge/models/ir_model.py
2025-08-29 15:43:05 +02:00

28 lines
952 B
Python

# Copyright 2025 Dixmit
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo import fields, models
class IrModel(models.Model):
_inherit = "ir.model"
is_ai_bridge_thread = fields.Boolean()
ai_usage = fields.Char(store=False, search="_search_ai_usage")
def _reflect_model_params(self, model):
vals = super(IrModel, self)._reflect_model_params(model)
vals["is_ai_bridge_thread"] = (
isinstance(model, self.pool["ai.bridge.thread"]) and not model._abstract
)
return vals
def _search_ai_usage(self, operator, value):
if operator not in ("="):
return []
if value == "thread":
return [("is_mail_thread", "=", True), ("transient", "=", False)]
if value in ["ai_thread_create", "ai_thread_write", "ai_thread_unlink"]:
return [("is_ai_bridge_thread", "=", True), ("transient", "=", False)]
return []