[FIX] compisition seems to work

bzr revid: fp@tinyerp.com-20120820190231-3cnvj7dtmfgojal4
This commit is contained in:
Fabien Pinckaers
2012-08-20 21:02:31 +02:00
parent 4b6303f205
commit afbcc4b579
+20 -22
View File
@@ -112,7 +112,17 @@ class mail_compose_message(osv.TransientModel):
'auto_delete': fields.boolean('Auto Delete', help="Permanently delete emails after sending"),
'filter_id': fields.many2one('ir.filters', 'Filters'),
'body_html': fields.html('HTML Editor Body'),
'content_subtype': fields.char('Message content subtype', size=32,
oldname="subtype", readonly=1,
help="Type of message, usually 'html' or 'plain', used to select "\
"plain-text or rich-text contents accordingly"),
}
_defaults = {
'content_subtype': lambda self,cr, uid, context={}: 'plain',
'body_html': lambda self,cr, uid, context={}: '',
'body': lambda self,cr, uid, context={}: ''
}
def get_value(self, cr, uid, model, res_id, context=None):
""" Returns a defaults-like dict with initial values for the composition
@@ -233,14 +243,12 @@ class mail_compose_message(osv.TransientModel):
if context is None:
context = {}
# composition wizard options
email_mode = context.get('email_mode')
formatting = context.get('formatting')
mass_mail_mode = context.get('mail.compose.message.mode') == 'mass_mail'
mail_message_obj = self.pool.get('mail.message')
for mail_wiz in self.browse(cr, uid, ids, context=context):
# attachments
attachment = {}
for attach in mail_wiz.attachment_ids:
attachment[attach.datas_fname] = attach.datas and attach.datas or False
@@ -248,27 +256,17 @@ class mail_compose_message(osv.TransientModel):
# default values, according to the wizard options
subject = mail_wiz.subject if formatting else False
partner_ids = [partner.id for partner in mail_wiz.dest_partner_ids]
body = mail_wiz.body_html if content_subtype == 'html' else mail_wiz.body
body = mail_wiz.body_html if mail_wiz.content_subtype == 'html' else mail_wiz.body
active_model_pool = self.pool.get(active_model)
# get model, active_ids, and check if model is openchatter-enabled
if mass_mail_mode and context.get('active_ids') and context.get('active_model'):
active_ids = context['active_ids']
active_model = context['active_model']
elif mass_mail_mode:
active_model = mail_wiz.model
active_ids = active_model_pool.search(cr, uid, ast.literal_eval(mail_wiz.filter_id.domain), context=ast.literal_eval(mail_wiz.filter_id.context))
else:
active_model = mail_wiz.model
active_ids = [mail_wiz.res_id]
for active_id in active_ids:
if context.get('mail.compose.message.mode') == 'mass_mail':
subject = self.render_template(cr, uid, subject, active_model, active_id)
body = self.render_template(cr, uid, mail_wiz.body_html, active_model, active_id)
active_model_pool.message_post(cr, uid, active_id, body, subject, 'comment',
attachments=attachments, context=context)
active_model_pool = self.pool.get('mail.thread')
active_id = context.get('default_res_id', False)
if context.get('mail.compose.message.mode') == 'mass_mail' and context.get('default_model', False) and context.get('default_res_id', False):
active_model = context.get('default_model', False)
active_model_pool = self.pool.get(active_model)
subject = self.render_template(cr, uid, subject, active_model, active_id)
body = self.render_template(cr, uid, mail_wiz.body_html, active_model, active_id)
active_model_pool.message_post(cr, uid, active_id, body, subject, 'comment',
attachments=attachment, context=context)
return {'type': 'ir.actions.act_window_close'}