diff options
| author | Thibault Delavallée <tde@odoo.com> | 2017-09-12 16:18:41 +0200 |
|---|---|---|
| committer | Yannick Tivisse <yti@odoo.com> | 2017-09-15 15:56:23 +0200 |
| commit | 7accd77999ebcd4ce16388f2a23ee296093fecbc (patch) | |
| tree | 77ac892207448bdade2ae849c137c6719689ea34 /addons/link_tracker | |
| parent | 83d3b281a4a7b0d0b16eb373031de64551a39ad9 (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.py | 36 |
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, + } |
