diff --git a/addons/mass_mailing/static/src/js/mass_mailing_widget.js b/addons/mass_mailing/static/src/js/mass_mailing_widget.js
index 4bf467efeec..c798ccd26ec 100644
--- a/addons/mass_mailing/static/src/js/mass_mailing_widget.js
+++ b/addons/mass_mailing/static/src/js/mass_mailing_widget.js
@@ -65,6 +65,7 @@ var MassMailingFieldHtml = FieldHtml.extend({
}
return this.wysiwyg.saveModifiedImages(this.$content).then(function () {
self._isDirty = self.wysiwyg.isDirty();
+ self._doAction();
convertInline.attachmentThumbnailToLinkImg($editable);
convertInline.fontToImg($editable);
@@ -84,6 +85,7 @@ var MassMailingFieldHtml = FieldHtml.extend({
changes: _.object([fieldName], [self._unWrap($editable.html())])
});
+ $editable.html(self.value);
if (self._isDirty && self.mode === 'edit') {
return self._doAction();
}
diff --git a/addons/mass_mailing/static/src/js/tours/mass_mailing_editor_tour.js b/addons/mass_mailing/static/src/js/tours/mass_mailing_editor_tour.js
new file mode 100644
index 00000000000..ea79d62e2a7
--- /dev/null
+++ b/addons/mass_mailing/static/src/js/tours/mass_mailing_editor_tour.js
@@ -0,0 +1,28 @@
+odoo.define('mass_mailing.mass_mailing_editor_tour', function (require) {
+ "use strict";
+
+ var tour = require('web_tour.tour');
+
+ tour.register('mass_mailing_editor_tour', {
+ url: '/web',
+ test: true,
+ }, [tour.stepUtils.showAppsMenuItem(), {
+ trigger: '.o_app[data-menu-xmlid="mass_mailing.mass_mailing_menu_root"]',
+ }, {
+ trigger: 'button.o_list_button_add',
+ }, {
+ trigger: 'input[name="subject"]',
+ run: 'text Test',
+ }, {
+ trigger: 'div[name="contact_list_ids"] .o_input_dropdown > input[type="text"]',
+ }, {
+ trigger: 'li.ui-menu-item',
+ }, {
+ trigger: 'iframe #default',
+ run: () => $('iframe').contents().find('o_editable').html('
'),
+ }, {
+ trigger: 'button.o_form_button_save',
+ }, {
+ trigger: 'iframe.o_readonly',
+ }]);
+});
diff --git a/addons/mass_mailing/tests/__init__.py b/addons/mass_mailing/tests/__init__.py
index 9b913f3af21..60b0223b293 100644
--- a/addons/mass_mailing/tests/__init__.py
+++ b/addons/mass_mailing/tests/__init__.py
@@ -7,3 +7,4 @@ from . import test_mailing_internals
from . import test_mailing_list
from . import test_mailing_controllers
from . import test_mailing_mailing_schedule_date
+from . import test_mailing_ui
diff --git a/addons/mass_mailing/tests/test_mailing_ui.py b/addons/mass_mailing/tests/test_mailing_ui.py
new file mode 100644
index 00000000000..808bb608d1c
--- /dev/null
+++ b/addons/mass_mailing/tests/test_mailing_ui.py
@@ -0,0 +1,23 @@
+# -*- coding: utf-8 -*-
+# Part of Odoo. See LICENSE file for full copyright and licensing details.
+
+import odoo.tests
+from odoo.addons.base.tests.common import HttpCaseWithUserDemo
+
+
+@odoo.tests.tagged('-at_install', 'post_install')
+class TestUi(HttpCaseWithUserDemo):
+ def setUp(self):
+ super().setUp()
+ self.user_demo.groups_id |= self.env.ref('mass_mailing.group_mass_mailing_user')
+ self.user_demo.groups_id |= self.env.ref('mail.group_mail_template_editor')
+
+ def test_01_mass_mailing_editor_tour(self):
+ self.start_tour("/web", 'mass_mailing_editor_tour', login="demo")
+ mail = self.env['mailing.mailing'].search([('subject', '=', 'Test')])[0]
+ # The tour created and saved an email. The edited version should be
+ # saved in body_arch, and its transpiled version (see convert_inline)
+ # for email client compatibility should be saved in body_html. This
+ # ensures both fields have different values.
+ self.assertEqual(mail.body_arch, '
')
+ self.assertEqual(mail.body_html, '
')
diff --git a/addons/web_editor/static/src/js/backend/convert_inline.js b/addons/web_editor/static/src/js/backend/convert_inline.js
index 6ed40307dcd..cdb70d32878 100644
--- a/addons/web_editor/static/src/js/backend/convert_inline.js
+++ b/addons/web_editor/static/src/js/backend/convert_inline.js
@@ -24,7 +24,7 @@ function getMatchedCSSRules(a) {
try {
rules = sheets[i].rules || sheets[i].cssRules;
} catch (e) {
- console.warn("Can't read the css rules of: " + sheets[i].href, e);
+ console.log("Can't read the css rules of: " + sheets[i].href, e);
continue;
}
if (rules) {