summaryrefslogtreecommitdiff
path: root/addons/mass_mailing/wizard/mail_compose_message.py
diff options
context:
space:
mode:
authorThibault Delavallée <tde@openerp.com>2014-03-17 17:56:49 +0100
committerThibault Delavallée <tde@openerp.com>2014-03-17 17:56:49 +0100
commit73a7dc58d1783e79c109905e1e5209b33c2853fb (patch)
tree06ebb081aa2cbc20b39ef6b1305558f86ddb27a0 /addons/mass_mailing/wizard/mail_compose_message.py
parentb0522b3b79618354c74fd8ed4baa021b1804f3b2 (diff)
[IMP] mass_mailing: improved campaign management in mass mailing wizard
- campaign appear only when having the group activated - now choosing the mailing name, that create the mailing list + campaign - currently limited to the valid models bzr revid: tde@openerp.com-20140317165649-321f0wxatvj4pz5w
Diffstat (limited to 'addons/mass_mailing/wizard/mail_compose_message.py')
-rw-r--r--addons/mass_mailing/wizard/mail_compose_message.py37
1 files changed, 20 insertions, 17 deletions
diff --git a/addons/mass_mailing/wizard/mail_compose_message.py b/addons/mass_mailing/wizard/mail_compose_message.py
index 4b3f0d6b9bd..d2d9ee1156d 100644
--- a/addons/mass_mailing/wizard/mail_compose_message.py
+++ b/addons/mass_mailing/wizard/mail_compose_message.py
@@ -31,10 +31,7 @@ class MailComposeMessage(osv.TransientModel):
'mass_mailing_campaign_id': fields.many2one(
'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)]",
- ),
+ 'mass_mailing_name': fields.char('Mass Mailing'),
}
def get_mail_values(self, cr, uid, wizard, res_ids, context=None):
@@ -42,19 +39,25 @@ 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()
- 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,
- 'template_id': wizard.template_id and wizard.template_id.id or False,
- }, context=context)
+ # use only for allowed models in mass mailing
+ if wizard.model not in [t[0] for t in self.pool['mail.mass_mailing']._get_mailing_type()]:
+ return res
+ if wizard.composition_mode == 'mass_mail' and wizard.mass_mailing_name:
+ list_id = self.pool['mail.mass_mailing.list'].create(
+ cr, uid, {
+ 'name': wizard.mass_mailing_name,
+ 'model': wizard.model,
+ 'domain': wizard.active_domain,
+ }, context=context)
+ mass_mailing_id = self.pool['mail.mass_mailing'].create(
+ cr, uid, {
+ '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,
+ 'contact_list_ids': [(4, list_id)],
+ }, context=context)
for res_id in res_ids:
res[res_id]['statistics_ids'] = [(0, 0, {
'model': wizard.model,