oca-technical/odoo-bringout-oca-automation-automation_oca/automation_oca/models/link_tracker.py
2025-08-29 15:43:03 +02:00

45 lines
1.7 KiB
Python

# Copyright 2024 Dixmit
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo import api, fields, models
class LinkTrackerClick(models.Model):
_inherit = "link.tracker.click"
automation_record_step_id = fields.Many2one("automation.record.step")
automation_configuration_step_id = fields.Many2one(
related="automation_record_step_id.configuration_step_id", store=True
)
automation_configuration_id = fields.Many2one(
related="automation_record_step_id.configuration_id", store=True
)
@api.model
def add_click(self, code, automation_record_step_id=False, **route_values):
if automation_record_step_id:
tracker_code = self.env["link.tracker.code"].search([("code", "=", code)])
if not tracker_code:
return None
ip = route_values.get("ip", False)
if self.search_count(
[
(
"automation_record_step_id",
"=",
automation_record_step_id,
),
("link_id", "=", tracker_code.link_id.id),
("ip", "=", ip),
]
):
return None
route_values["link_id"] = tracker_code.link_id.id
click_values = self._prepare_click_values_from_route(
automation_record_step_id=automation_record_step_id, **route_values
)
click = self.create(click_values)
click.automation_record_step_id._set_mail_open()
click.automation_record_step_id._set_mail_clicked()
return click
return super().add_click(code, **route_values)