From 81b5c601f9466e5e48e337c0d270ea4955cf181c Mon Sep 17 00:00:00 2001 From: Olivier Dony Date: Wed, 24 Jun 2015 16:04:59 +0200 Subject: [PATCH] [IMP] mass_mailing: add `recipient` field to preview recipient on tracking stats --- addons/mass_mailing/models/mass_mailing_stats.py | 15 +++++++++++++++ addons/mass_mailing/views/mass_mailing.xml | 2 ++ 2 files changed, 17 insertions(+) diff --git a/addons/mass_mailing/models/mass_mailing_stats.py b/addons/mass_mailing/models/mass_mailing_stats.py index 2136110ae14..c289e78cf8f 100644 --- a/addons/mass_mailing/models/mass_mailing_stats.py +++ b/addons/mass_mailing/models/mass_mailing_stats.py @@ -50,6 +50,20 @@ class MailMailStats(osv.Model): return res + def _compute_recipient(self, cr, uid, ids, field_names, arg, context=None): + res = dict.fromkeys(ids, '') + for stat in self.browse(cr, uid, ids, context=context): + if not self.pool.get(stat.model): + continue + target = self.pool[stat.model].browse(cr, uid, stat.res_id, context=context) + email = '' + for email_field in ('email', 'email_from'): + if email_field in target and target[email_field]: + email = ' <%s>' % target[email_field] + break + res[stat.id] = '%s%s' % (target.display_name, email) + return res + __store = {_name: ((lambda s, c, u, i, t: i), ['exception', 'sent', 'opened', 'replied', 'bounced'], 10)} _columns = { @@ -94,6 +108,7 @@ class MailMailStats(osv.Model): 'state_update': fields.function(_compute_state, string='State Update', type='datetime', multi='state', help='Last state update of the mail', store=__store), + 'recipient': fields.function(_compute_recipient, string='Recipient', type='char'), } _defaults = { diff --git a/addons/mass_mailing/views/mass_mailing.xml b/addons/mass_mailing/views/mass_mailing.xml index 825d5a7d2db..9fb357432aa 100644 --- a/addons/mass_mailing/views/mass_mailing.xml +++ b/addons/mass_mailing/views/mass_mailing.xml @@ -46,6 +46,7 @@ mail.mail.statistics + @@ -64,6 +65,7 @@
+