summaryrefslogtreecommitdiff
path: root/addons/mass_mailing/wizard/mail_compose_message.py
diff options
context:
space:
mode:
Diffstat (limited to 'addons/mass_mailing/wizard/mail_compose_message.py')
-rw-r--r--addons/mass_mailing/wizard/mail_compose_message.py52
1 files changed, 20 insertions, 32 deletions
diff --git a/addons/mass_mailing/wizard/mail_compose_message.py b/addons/mass_mailing/wizard/mail_compose_message.py
index 4b3f0d6b9bd..4aebff2d04d 100644
--- a/addons/mass_mailing/wizard/mail_compose_message.py
+++ b/addons/mass_mailing/wizard/mail_compose_message.py
@@ -1,23 +1,4 @@
# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2013-today OpenERP SA (<http://www.openerp.com>)
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>
-#
-##############################################################################
from openerp.osv import osv, fields
@@ -29,11 +10,14 @@ class MailComposeMessage(osv.TransientModel):
_columns = {
'mass_mailing_campaign_id': fields.many2one(
- 'mail.mass_mailing.campaign', 'Mass mailing campaign',
+ 'mail.mass_mailing.campaign', 'Mass Mailing Campaign',
),
'mass_mailing_id': fields.many2one(
- 'mail.mass_mailing', 'Mass mailing',
- domain="[('mass_mailing_campaign_id', '=', mass_mailing_campaign_id)]",
+ 'mail.mass_mailing', 'Mass Mailing'
+ ),
+ 'mass_mailing_name': fields.char('Mass Mailing'),
+ 'mailing_list_ids': fields.many2many(
+ 'mail.mass_mailing.list', string='Mailing List'
),
}
@@ -42,23 +26,27 @@ class MailComposeMessage(osv.TransientModel):
mail.mail.statistics values in the o2m of mail_mail, when doing pure
email mass mailing. """
res = super(MailComposeMessage, self).get_mail_values(cr, uid, wizard, res_ids, context=context)
- if wizard.composition_mode == 'mass_mail' and wizard.mass_mailing_campaign_id: # TODO: which kind of mass mailing ?
- if wizard.mass_mailing_id:
- mass_mailing_id = wizard.mass_mailing_id.id
- else:
- current_date = fields.datetime.now()
+ # use only for allowed models in mass mailing
+ if wizard.composition_mode == 'mass_mail' and \
+ (wizard.mass_mailing_name or wizard.mass_mailing_id) and \
+ wizard.model in [item[0] for item in self.pool['mail.mass_mailing']._get_mailing_model(cr, uid, context=context)]:
+ mass_mailing = wizard.mass_mailing_id
+ if not mass_mailing:
mass_mailing_id = self.pool['mail.mass_mailing'].create(
cr, uid, {
- 'mass_mailing_campaign_id': wizard.mass_mailing_campaign_id.id,
- 'name': '%s-%s' % (wizard.mass_mailing_campaign_id.name, current_date),
- 'date': current_date,
- 'domain': wizard.active_domain,
+ 'mass_mailing_campaign_id': wizard.mass_mailing_campaign_id and wizard.mass_mailing_campaign_id.id or False,
+ 'name': wizard.mass_mailing_name,
'template_id': wizard.template_id and wizard.template_id.id or False,
+ 'state': 'done',
+ 'mailing_type': wizard.model,
+ 'mailing_domain': wizard.active_domain,
}, context=context)
+ mass_mailing = self.pool['mail.mass_mailing'].browse(cr, uid, mass_mailing_id, context=context)
for res_id in res_ids:
+ res[res_id]['mailing_id'] = mass_mailing.id
res[res_id]['statistics_ids'] = [(0, 0, {
'model': wizard.model,
'res_id': res_id,
- 'mass_mailing_id': mass_mailing_id,
+ 'mass_mailing_id': mass_mailing.id,
})]
return res