[FIX] edi: Link to the document is not being set in the sent email: (Maintenance...
authorRavi Gohil (Open ERP) <rgo@tinyerp.com>
Mon, 9 Jul 2012 06:39:27 +0000 (12:09 +0530)
committerRavi Gohil (Open ERP) <rgo@tinyerp.com>
Mon, 9 Jul 2012 06:39:27 +0000 (12:09 +0530)
bzr revid: rgo@tinyerp.com-20120709063927-h105hbev3hy6l0zl

addons/edi/models/edi.py
addons/mail/wizard/mail_compose_message.py

index 589922f..170a040 100644 (file)
@@ -681,5 +681,29 @@ class EDIMixin(object):
         self._edi_import_attachments(cr, uid, record_id, edi_document, context=context)
 
         return record_id
+    
+class mail_compose_message(osv.osv_memory):
+    _inherit = 'mail.compose.message'
+    def send_mail(self, cr, uid, ids, context=None):
+        if context.get('mail.compose.message.mode') == 'mass_mail':
+            mail = self.browse(cr, uid, ids[0], context=context)
+            if context.get('active_ids') and context.get('active_model'):
+                active_ids = context['active_ids']
+                active_model = context['active_model']
+            else:
+                active_model = mail.model
+                active_model_pool = self.pool.get(active_model)
+                active_ids = active_model_pool.search(cr, uid, ast.literal_eval(mail.filter_id.domain), context=ast.literal_eval(mail.filter_id.context))
+
+            if active_model in ['account.invoice', 'sale.order', 'purchase.order']:
+                web_root_url = self.pool.get('ir.config_parameter').get_param(cr, uid, 'web.base.url')
+                for active_id in active_ids:
+                    edi_record = self.pool.get(active_model).browse(cr, uid, active_id, context=context)
+                    edi_token = self.pool.get('edi.document').export_edi(cr, uid, [edi_record], context = context)[0]
+                    ctx = dict(context, edi_web_url_view=EDI_VIEW_WEB_URL % (web_root_url, cr.dbname, edi_token))
+                    ctx['active_ids'] = [active_id]
+                    super(mail_compose_message, self).send_mail(cr, uid, ids, context=ctx)
+                return {'type': 'ir.actions.act_window_close'}
+        return super(mail_compose_message, self).send_mail(cr, uid, ids, context=context)
 
 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
index af8baa3..2c2d170 100644 (file)
@@ -216,13 +216,13 @@ class mail_compose_message(osv.osv_memory):
                     active_ids = active_model_pool.search(cr, uid, ast.literal_eval(mail.filter_id.domain), context=ast.literal_eval(mail.filter_id.context))
 
                 for active_id in active_ids:
-                    subject = self.render_template(cr, uid, mail.subject, active_model, active_id)
-                    rendered_body = self.render_template(cr, uid, body, active_model, active_id)
-                    email_from = self.render_template(cr, uid, mail.email_from, active_model, active_id)
-                    email_to = self.render_template(cr, uid, mail.email_to, active_model, active_id)
-                    email_cc = self.render_template(cr, uid, mail.email_cc, active_model, active_id)
-                    email_bcc = self.render_template(cr, uid, mail.email_bcc, active_model, active_id)
-                    reply_to = self.render_template(cr, uid, mail.reply_to, active_model, active_id)
+                    subject = self.render_template(cr, uid, mail.subject, active_model, active_id, context)
+                    rendered_body = self.render_template(cr, uid, body, active_model, active_id, context)
+                    email_from = self.render_template(cr, uid, mail.email_from, active_model, active_id, context)
+                    email_to = self.render_template(cr, uid, mail.email_to, active_model, active_id, context)
+                    email_cc = self.render_template(cr, uid, mail.email_cc, active_model, active_id, context)
+                    email_bcc = self.render_template(cr, uid, mail.email_bcc, active_model, active_id, context)
+                    reply_to = self.render_template(cr, uid, mail.reply_to, active_model, active_id, context)
 
                     # in mass-mailing mode we only schedule the mail for sending, it will be 
                     # processed as soon as the mail scheduler runs.