summaryrefslogtreecommitdiff
path: root/addons/link_tracker
diff options
context:
space:
mode:
authorThibault Delavallée <tde@odoo.com>2017-09-12 16:18:41 +0200
committerYannick Tivisse <yti@odoo.com>2017-09-15 15:56:23 +0200
commit7accd77999ebcd4ce16388f2a23ee296093fecbc (patch)
tree77ac892207448bdade2ae849c137c6719689ea34 /addons/link_tracker
parent83d3b281a4a7b0d0b16eb373031de64551a39ad9 (diff)
[REF][FIX] link_tracker, mass_mailing: factorize method creating link tracker click values
This commit factorizes the link.tracker.click values computation out of the add_click method. This method is called when customers click on links in email that are tracked in Odoo. Purpose of this commit is * to effectively put mass mailing related code into mass mailing. Currently link_tracker holds code related to mass mailing which is not in its dependency tree. Let us therefore try to be a bit modular and add a proper inheritance in mass mailing; * allow addons to inherit from the click values prepare method to add specific values depending on their behavior like mass mailing adding links to a mass mailing and a mass mailing campaign;
Diffstat (limited to 'addons/link_tracker')
-rw-r--r--addons/link_tracker/models/link_tracker.py36
1 files changed, 17 insertions, 19 deletions
diff --git a/addons/link_tracker/models/link_tracker.py b/addons/link_tracker/models/link_tracker.py
index d256429a0c4..36f43d485a8 100644
--- a/addons/link_tracker/models/link_tracker.py
+++ b/addons/link_tracker/models/link_tracker.py
@@ -244,23 +244,21 @@ class link_tracker_click(models.Model):
again = self.search_count([('link_id', '=', code_rec.link_id.id), ('ip', '=', ip)])
if not again:
- country_record = self.env['res.country'].search([('code', '=', country_code)], limit=1)
+ self.create(
+ self._get_click_values(dict(
+ code=code,
+ ip=ip,
+ country_code=country_code,
+ stat_id=stat_id,
+ )))
+
+ def _get_click_values_from_route(self, route_values):
+ code = self.env['link.tracker.code'].search([('code', '=', route_values['code'])], limit=1)
+ country = self.env['res.country'].search([('code', '=', route_values['country_code'])], limit=1)
- vals = {
- 'link_id': code_rec.link_id.id,
- 'create_date': datetime.date.today(),
- 'ip': ip,
- 'country_id': country_record.id,
- 'mail_stat_id': stat_id
- }
-
- if stat_id:
- mail_stat = self.env['mail.mail.statistics'].search([('id', '=', stat_id)])
-
- if mail_stat.mass_mailing_campaign_id:
- vals['mass_mailing_campaign_id'] = mail_stat.mass_mailing_campaign_id.id
-
- if mail_stat.mass_mailing_id:
- vals['mass_mailing_id'] = mail_stat.mass_mailing_id.id
-
- self.create(vals)
+ return {
+ 'link_id': code.link_id.id,
+ 'create_date': datetime.date.today(),
+ 'ip': route_values['ip'],
+ 'country_id': country.id,
+ }