diff options
Diffstat (limited to 'addons/mail/wizard/mail_compose_message.py')
| -rw-r--r-- | addons/mail/wizard/mail_compose_message.py | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/addons/mail/wizard/mail_compose_message.py b/addons/mail/wizard/mail_compose_message.py index ec0c2a8de06..5776a8e46c5 100644 --- a/addons/mail/wizard/mail_compose_message.py +++ b/addons/mail/wizard/mail_compose_message.py @@ -191,6 +191,7 @@ class mail_compose_message(osv.TransientModel): if context is None: context = {} active_ids = context.get('active_ids') + is_log = context.get('mail_compose_log', False) for wizard in self.browse(cr, uid, ids, context=context): mass_mail_mode = wizard.composition_mode == 'mass_mail' @@ -204,26 +205,22 @@ class mail_compose_message(osv.TransientModel): 'subject': wizard.subject, 'body': wizard.body, 'parent_id': wizard.parent_id and wizard.parent_id.id, - 'partner_ids': [(4, partner.id) for partner in wizard.partner_ids], + 'partner_ids': [partner.id for partner in wizard.partner_ids], 'attachments': [(attach.datas_fname or attach.name, base64.b64decode(attach.datas)) for attach in wizard.attachment_ids], } # mass mailing: render and override default values if mass_mail_mode and wizard.model: email_dict = self.render_message(cr, uid, wizard, res_id, context=context) new_partner_ids = email_dict.pop('partner_ids', []) - post_values['partner_ids'] += [(4, partner_id) for partner_id in new_partner_ids] + post_values['partner_ids'] += new_partner_ids new_attachments = email_dict.pop('attachments', []) post_values['attachments'] += new_attachments post_values.update(email_dict) - # automatically subscribe recipients if asked to - if context.get('mail_post_autofollow') and wizard.model and post_values.get('partner_ids'): - active_model_pool.message_subscribe(cr, uid, [res_id], [item[1] for item in post_values.get('partner_ids')], context=context) # post the message - active_model_pool.message_post(cr, uid, [res_id], type='comment', subtype='mt_comment', context=context, **post_values) - - # post process: update attachments, because id is not necessarily known when adding attachments in Chatter - # self.pool.get('ir.attachment').write(cr, uid, [attach.id for attach in wizard.attachment_ids], { - # 'res_id': wizard.id, 'res_model': wizard.model or False}, context=context) + subtype = 'mail.mt_comment' + if is_log: + subtype = False + active_model_pool.message_post(cr, uid, [res_id], type='comment', subtype=subtype, context=context, **post_values) return {'type': 'ir.actions.act_window_close'} @@ -258,7 +255,7 @@ class mail_compose_message(osv.TransientModel): result = eval(exp, { 'user': self.pool.get('res.users').browse(cr, uid, uid, context=context), 'object': self.pool.get(model).browse(cr, uid, res_id, context=context), - 'context': dict(context), # copy context to prevent side-effects of eval + 'context': dict(context), # copy context to prevent side-effects of eval }) return result and tools.ustr(result) or '' return template and EXPRESSION_PATTERN.sub(merge, template) |
