diff options
Diffstat (limited to 'addons/mass_mailing/wizard/mail_compose_message.py')
| -rw-r--r-- | addons/mass_mailing/wizard/mail_compose_message.py | 52 |
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 |
