- |
+ |
Thank you for joining us!
We want to take this opportunity to welcome you to our ever-growing community!
Your platform is ready for work. It will help you reduce the costs of digital signage, attract new customers and increase sales.
@@ -188,7 +188,7 @@
- |
+ |
The open source model of Odoo has allowed us to leverage thousands of developers and
business experts to build hundreds of apps in just a few years.
With strong technical foundations, Odoo's framework is unique.
@@ -211,7 +211,7 @@
- |
+ |
Check this out!
Apps That Help You Grow Your Business!
|
@@ -237,47 +237,47 @@
-
+
- |
+ |
$8
user / month (billed annually)
|
- |
+ |
|
- |
+ |
Basic features
|
- |
+ |
Basic management
|
- |
+ |
No customization
|
- |
+ |
No support
|
-
+
- |
+ |
|
- |
+ |
More
|
@@ -293,47 +293,47 @@
-
+
- |
+ |
$18
user / month (billed annually)
|
- |
+ |
|
- |
+ |
Advanced features
|
- |
+ |
Total management
|
- |
+ |
Fully customizable
|
- |
+ |
24/7 Support
|
-
+
- |
+ |
|
- |
+ |
More
|
@@ -353,8 +353,8 @@
-
-
+
+
Column title
@@ -368,8 +368,8 @@
|
-
-
+
+
Column title
@@ -395,8 +395,8 @@
-
-
+
+
Column Title
@@ -408,8 +408,8 @@
|
-
-
+
+
Column Title
@@ -421,8 +421,8 @@
|
-
-
+
+
Column Title
@@ -469,14 +469,14 @@
- |
+ |
A unique value
The open source model of Odoo has allowed us to leverage thousands of developers and business experts to build hundreds of apps in just a few years.
|
-
+ |
|
@@ -489,16 +489,20 @@
-
+
- |
+ |
|
- |
- With strong technical foundations, Odoo's framework is unique. It provides top notch usability that scales across all apps.
+ |
+
+ |
+ With strong technical foundations, Odoo's framework is unique. It provides top notch usability that scales across all apps.
+ |
+
|
@@ -513,7 +517,7 @@
- |
+ |
|
@@ -534,7 +538,7 @@
- |
+ |
My Account
@@ -574,7 +578,7 @@
Use This Promo Code BEFORE 1st of August
- CODE: 45A9E77DGW8455
+ CODE: 45A9E77DGW8455
and save $20 on your next order!
@@ -583,7 +587,7 @@
|
|
- Use now
+ Use now
|
@@ -599,7 +603,7 @@
-
+
|
20%
@@ -634,9 +638,11 @@
-
- 21 Jul
- ALL DAY
+ |
+
|
@@ -667,7 +673,7 @@
|
-
+
|
@@ -682,7 +688,7 @@
|
-
+
|
@@ -697,7 +703,7 @@
|
-
+
|
diff --git a/addons/mass_mailing/wizard/mail_compose_message.py b/addons/mass_mailing/wizard/mail_compose_message.py
index 8f28f6b5244..12d167a70ee 100644
--- a/addons/mass_mailing/wizard/mail_compose_message.py
+++ b/addons/mass_mailing/wizard/mail_compose_message.py
@@ -57,6 +57,7 @@ class MailComposeMessage(models.TransientModel):
blacklist = self._context.get('mass_mailing_blacklist')
seen_list = self._context.get('mass_mailing_seen_list')
+ mass_mail_layout = self.env.ref('mass_mailing.mass_mailing_mail_layout', raise_if_not_found=False)
for res_id in res_ids:
mail_values = res[res_id]
if mail_values.get('email_to'):
@@ -74,6 +75,8 @@ class MailComposeMessage(models.TransientModel):
'res_id': res_id,
'mass_mailing_id': mass_mailing.id
}
+ if mail_values.get('body_html') and mass_mail_layout:
+ mail_values['body_html'] = mass_mail_layout.render({'body': mail_values['body_html']}, engine='ir.qweb', minimal_qcontext=True)
# propagate exception state to stat when still-born
if mail_values.get('state') == 'cancel':
stat_vals['exception'] = fields.Datetime.now()
diff --git a/addons/mass_mailing/wizard/test_mailing.py b/addons/mass_mailing/wizard/test_mailing.py
index 7fafbb920a8..8389ce269ef 100644
--- a/addons/mass_mailing/wizard/test_mailing.py
+++ b/addons/mass_mailing/wizard/test_mailing.py
@@ -18,15 +18,17 @@ class TestMassMailing(models.TransientModel):
mails = self.env['mail.mail']
mailing = self.mass_mailing_id
test_emails = tools.email_split(self.email_to)
+ mass_mail_layout = self.env.ref('mass_mailing.mass_mailing_mail_layout')
for test_mail in test_emails:
# Convert links in absolute URLs before the application of the shortener
mailing.write({'body_html': self.env['mail.thread']._replace_local_links(mailing.body_html)})
+ body = tools.html_sanitize(mailing.body_html, sanitize_attributes=True, sanitize_style=True)
mail_values = {
'email_from': mailing.email_from,
'reply_to': mailing.reply_to,
'email_to': test_mail,
'subject': mailing.name,
- 'body_html': tools.html_sanitize(mailing.body_html, sanitize_attributes=True, sanitize_style=True, strip_classes=True),
+ 'body_html': mass_mail_layout.render({'body': body}, engine='ir.qweb', minimal_qcontext=True),
'notification': True,
'mailing_id': mailing.id,
'attachment_ids': [(4, attachment.id) for attachment in mailing.attachment_ids],
diff --git a/addons/web_editor/static/src/js/editor/transcoder.js b/addons/web_editor/static/src/js/editor/transcoder.js
index 84fe3cf8c93..45962e0df8c 100644
--- a/addons/web_editor/static/src/js/editor/transcoder.js
+++ b/addons/web_editor/static/src/js/editor/transcoder.js
@@ -37,7 +37,6 @@ function getMatchedCSSRules(a) {
selectorText.indexOf(':active') === -1 &&
selectorText.indexOf(':link') === -1 &&
selectorText.indexOf('::') === -1 &&
- selectorText.indexOf('"') === -1 &&
selectorText.indexOf("'") === -1) {
var st = selectorText.split(/\s*,\s*/);
for (k = 0 ; k < st.length ; k++) {
| | | | | | | | | | | | | | |