1 # -*- coding: utf-8 -*-
3 from openerp.osv import osv, fields
6 class MailComposeMessage(osv.TransientModel):
7 """Add concept of mass mailing campaign to the mail.compose.message wizard
9 _inherit = 'mail.compose.message'
12 'mass_mailing_campaign_id': fields.many2one(
13 'mail.mass_mailing.campaign', 'Mass Mailing Campaign',
15 'mass_mailing_id': fields.many2one(
16 'mail.mass_mailing', 'Mass Mailing'
18 'mass_mailing_name': fields.char('Mass Mailing'),
19 'mailing_list_ids': fields.many2many(
20 'mail.mass_mailing.list', string='Mailing List'
24 def get_mail_values(self, cr, uid, wizard, res_ids, context=None):
25 """ Override method that generated the mail content by creating the
26 mail.mail.statistics values in the o2m of mail_mail, when doing pure
27 email mass mailing. """
28 res = super(MailComposeMessage, self).get_mail_values(cr, uid, wizard, res_ids, context=context)
29 # use only for allowed models in mass mailing
30 if wizard.composition_mode == 'mass_mail' and \
31 (wizard.mass_mailing_name or wizard.mass_mailing_id) and \
32 wizard.model in [item[0] for item in self.pool['mail.mass_mailing']._get_mailing_model(cr, uid, context=context)]:
33 mass_mailing = wizard.mass_mailing_id
35 reply_to_mode = wizard.no_auto_thread and 'email' or 'thread'
36 reply_to = wizard.no_auto_thread and wizard.reply_to or False
37 mass_mailing_id = self.pool['mail.mass_mailing'].create(
39 'mass_mailing_campaign_id': wizard.mass_mailing_campaign_id and wizard.mass_mailing_campaign_id.id or False,
40 'name': wizard.mass_mailing_name,
41 'template_id': wizard.template_id and wizard.template_id.id or False,
43 'reply_to_mode': reply_to_mode,
45 'sent_date': fields.datetime.now(),
46 'body_html': wizard.body,
47 'mailing_model': wizard.model,
48 'mailing_domain': wizard.active_domain,
50 mass_mailing = self.pool['mail.mass_mailing'].browse(cr, uid, mass_mailing_id, context=context)
51 for res_id in res_ids:
53 'mailing_id': mass_mailing.id,
54 'statistics_ids': [(0, 0, {
55 'model': wizard.model,
57 'mass_mailing_id': mass_mailing.id,
59 # email-mode: keep original message for routing
60 'notification': mass_mailing.reply_to_mode == 'thread',
61 'auto_delete': not mass_mailing.keep_archives,