Browse Source

[FIX] mail_tracking: bugfixes (#199)

* [FIX] Only one data-odoo-tracking-email tag in each email
* [FIX] Get status even in multicompany instances
pull/205/head
Antonio Espinosa 7 years ago
committed by Jairo Llopis
parent
commit
93232c025e
  1. 2
      mail_tracking/__manifest__.py
  2. 2
      mail_tracking/models/ir_mail_server.py
  3. 2
      mail_tracking/models/mail_message.py
  4. 6
      mail_tracking/models/mail_tracking_email.py

2
mail_tracking/__manifest__.py

@ -5,7 +5,7 @@
{ {
"name": "Email tracking", "name": "Email tracking",
"summary": "Email tracking system for all mails sent", "summary": "Email tracking system for all mails sent",
"version": "10.0.1.0.0",
"version": "10.0.1.0.1",
"category": "Social Network", "category": "Social Network",
"website": "http://www.tecnativa.com", "website": "http://www.tecnativa.com",
"author": "Tecnativa, " "author": "Tecnativa, "

2
mail_tracking/models/ir_mail_server.py

@ -23,7 +23,7 @@ class IrMailServer(models.Model):
tracking_email_id = False tracking_email_id = False
# https://regex101.com/r/lW4cB1/2 # https://regex101.com/r/lW4cB1/2
match = re.search( match = re.search(
r'<img [^>]* data-odoo-tracking-email=["\']([0-9]*)["\']', body)
r'<img[^>]*data-odoo-tracking-email=["\']([0-9]*)["\']', body)
if match: if match:
try: try:
tracking_email_id = int(match.group(1)) tracking_email_id = int(match.group(1))

2
mail_tracking/models/mail_message.py

@ -37,7 +37,7 @@ class MailMessage(models.Model):
partner_trackings = [] partner_trackings = []
partners_already = self.env['res.partner'] partners_already = self.env['res.partner']
partners = self.env['res.partner'] partners = self.env['res.partner']
trackings = self.env['mail.tracking.email'].search([
trackings = self.env['mail.tracking.email'].sudo().search([
('mail_message_id', '=', message.id), ('mail_message_id', '=', message.id),
]) ])
# Search all trackings for this message # Search all trackings for this message

6
mail_tracking/models/mail_tracking_email.py

@ -218,8 +218,12 @@ class MailTrackingEmail(models.Model):
self.ensure_one() self.ensure_one()
tracking_url = self._get_mail_tracking_img() tracking_url = self._get_mail_tracking_img()
if tracking_url: if tracking_url:
content = email.get('body', '')
content = re.sub(
r'<img[^>]*data-odoo-tracking-email=["\'][0-9]*["\'][^>]*>',
'', content)
body = tools.append_content_to_html( body = tools.append_content_to_html(
email.get('body', ''), tracking_url, plaintext=False,
content, tracking_url, plaintext=False,
container_tag='div') container_tag='div')
email['body'] = body email['body'] = body
return email return email

Loading…
Cancel
Save