diff --git a/mail_tracking/models/mail_tracking_email.py b/mail_tracking/models/mail_tracking_email.py index 6b2944be..d498ad66 100644 --- a/mail_tracking/models/mail_tracking_email.py +++ b/mail_tracking/models/mail_tracking_email.py @@ -126,6 +126,13 @@ class MailTrackingEmail(models.Model): # Consider only last 10 tracking emails return self.sorted(key=lambda r: r.time, reverse=True)[:10] + @api.model + def email_score_from_email(self, email): + trackings = self.env['mail.tracking.email'].search([ + ('recipient_address', '=ilike', email) + ]) + return trackings.email_score() + @api.multi def email_score(self): """Default email score algorimth""" diff --git a/mail_tracking/models/res_partner.py b/mail_tracking/models/res_partner.py index c4eb294a..908f1190 100644 --- a/mail_tracking/models/res_partner.py +++ b/mail_tracking/models/res_partner.py @@ -40,6 +40,7 @@ class ResPartner(models.Model): def write(self, vals): email = vals.get('email') if email is not None: - vals['tracking_email_ids'] = \ - self.env['mail.tracking.email']._tracking_ids_to_write(email) + m_track = self.env['mail.tracking.email'] + vals['tracking_email_ids'] = m_track._tracking_ids_to_write(email) + vals['email_score'] = m_track.email_score_from_email(email) return super(ResPartner, self).write(vals)