27 lines
1007 B
Python
27 lines
1007 B
Python
from odoo import api, fields, models
|
|
|
|
|
|
class LinkTrackerClick(models.Model):
|
|
_inherit = "link.tracker.click"
|
|
|
|
whatsapp_message_id = fields.Many2one('whatsapp.message', string='Whatsapp Message', ondelete="set null")
|
|
|
|
def _prepare_click_values_from_route(self, **route_values):
|
|
click_values = super()._prepare_click_values_from_route(**route_values)
|
|
|
|
if 'campaign_id' not in click_values and 'whatsapp_message_id' in route_values:
|
|
wa_msg = self.env['whatsapp.message'].browse(route_values['whatsapp_message_id'])
|
|
utm_campaign = wa_msg.marketing_trace_ids.activity_id.campaign_id.utm_campaign_id
|
|
if utm_campaign:
|
|
click_values['campaign_id'] = utm_campaign.id
|
|
return click_values
|
|
|
|
@api.model
|
|
def add_click(self, code, **route_values):
|
|
click = super().add_click(code, **route_values)
|
|
|
|
if click and click.whatsapp_message_id:
|
|
click.whatsapp_message_id.set_clicked()
|
|
|
|
return click
|