Tower: upload cetmix_tower_webhook 16.0.1.0.5 (via marketplace)
This commit is contained in:
85
addons/cetmix_tower_webhook/models/cx_tower_variable.py
Normal file
85
addons/cetmix_tower_webhook/models/cx_tower_variable.py
Normal file
@@ -0,0 +1,85 @@
|
||||
# Copyright (C) 2025 Cetmix OÜ
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
from odoo import fields, models
|
||||
|
||||
|
||||
class CxTowerVariable(models.Model):
|
||||
_inherit = "cx.tower.variable"
|
||||
|
||||
# --- Link to records where the variable is used
|
||||
webhook_ids = fields.Many2many(
|
||||
comodel_name="cx.tower.webhook",
|
||||
relation="cx_tower_webhook_variable_rel",
|
||||
column1="variable_id",
|
||||
column2="webhook_id",
|
||||
copy=False,
|
||||
)
|
||||
webhook_ids_count = fields.Integer(
|
||||
string="Webhook Count", compute="_compute_webhook_ids_count"
|
||||
)
|
||||
webhook_authenticator_ids = fields.Many2many(
|
||||
comodel_name="cx.tower.webhook.authenticator",
|
||||
relation="cx_tower_webhook_authenticator_variable_rel",
|
||||
column1="variable_id",
|
||||
column2="webhook_authenticator_id",
|
||||
copy=False,
|
||||
)
|
||||
webhook_authenticator_ids_count = fields.Integer(
|
||||
string="Webhook Authenticator Count", compute="_compute_webhook_ids_count"
|
||||
)
|
||||
|
||||
def _compute_webhook_ids_count(self):
|
||||
"""
|
||||
Count number of webhooks and webhook authenticators for the variable
|
||||
"""
|
||||
for rec in self:
|
||||
rec.update(
|
||||
{
|
||||
"webhook_ids_count": len(rec.webhook_ids),
|
||||
"webhook_authenticator_ids_count": len(
|
||||
rec.webhook_authenticator_ids
|
||||
),
|
||||
}
|
||||
)
|
||||
|
||||
def action_open_webhooks(self):
|
||||
"""Open the webhooks where the variable is used"""
|
||||
|
||||
self.ensure_one()
|
||||
action = self.env["ir.actions.act_window"]._for_xml_id(
|
||||
"cetmix_tower_webhook.cx_tower_webhook_action"
|
||||
)
|
||||
action.update(
|
||||
{
|
||||
"domain": [("variable_ids", "in", self.ids)],
|
||||
}
|
||||
)
|
||||
return action
|
||||
|
||||
def action_open_webhook_authenticators(self):
|
||||
"""Open the webhook authenticators where the variable is used"""
|
||||
|
||||
self.ensure_one()
|
||||
action = self.env["ir.actions.act_window"]._for_xml_id(
|
||||
"cetmix_tower_webhook.cx_tower_webhook_authenticator_action"
|
||||
)
|
||||
action.update(
|
||||
{
|
||||
"domain": [("variable_ids", "in", self.ids)],
|
||||
}
|
||||
)
|
||||
return action
|
||||
|
||||
def _get_propagation_field_mapping(self):
|
||||
"""
|
||||
Override to add webhook and webhook authenticator
|
||||
to the propagation field mapping.
|
||||
"""
|
||||
res = super()._get_propagation_field_mapping()
|
||||
res.update(
|
||||
{
|
||||
"cx.tower.webhook": ["code"],
|
||||
"cx.tower.webhook.authenticator": ["code"],
|
||||
}
|
||||
)
|
||||
return res
|
||||
Reference in New Issue
Block a user