From daee70150f413db72b69f99c2db5500beecb8a10 Mon Sep 17 00:00:00 2001
From: "Pedro M. Baeza" <pedro.baeza@gmail.com>
Date: Mon, 17 Oct 2016 21:01:30 +0200
Subject: [PATCH] [FIX] email_template_qweb: Decode body when encoded

If the result is of type unicode, render method encodes it in utf-8.
We need to decode it in that case so that the rendering results correct.
---
 email_template_qweb/models/mail_template.py | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/email_template_qweb/models/mail_template.py b/email_template_qweb/models/mail_template.py
index ecade0488..a3c99051d 100644
--- a/email_template_qweb/models/mail_template.py
+++ b/email_template_qweb/models/mail_template.py
@@ -27,11 +27,16 @@ class MailTemplate(models.Model):
             if this.body_type == 'qweb' and\
                     (not fields or 'body_html' in fields):
                 for record in self.env[this.model].browse(record_id):
+                    body_html = this.body_view_id.render({
+                        'object': record,
+                        'email_template': this,
+                    })
+                    # Some wizards, like when sending a sales order, need this
+                    # fix to display accents correctly
+                    if not isinstance(body_html, unicode):
+                        body_html = body_html.decode('utf-8')
                     result[record_id]['body_html'] = self.render_post_process(
-                        this.body_view_id.render({
-                            'object': record,
-                            'email_template': this,
-                        })
+                        body_html
                     )
                     result[record_id]['body'] = tools.html_sanitize(
                         result[record_id]['body_html']