mirror of
https://github.com/bringout/oca-technical.git
synced 2026-04-21 05:52:08 +02:00
45 lines
1.7 KiB
Python
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)
|