diff --git a/addons/website/models/mixins.py b/addons/website/models/mixins.py
index 1d46b55c3bd..39a14b6060e 100644
--- a/addons/website/models/mixins.py
+++ b/addons/website/models/mixins.py
@@ -93,7 +93,8 @@ class SeoMetadata(models.AbstractModel):
twitter_meta['twitter:image'] = meta_image
return {
'opengraph_meta': opengraph_meta,
- 'twitter_meta': twitter_meta
+ 'twitter_meta': twitter_meta,
+ 'meta_description': default_meta.get('default_meta_description')
}
diff --git a/addons/website/static/src/js/menu/seo.js b/addons/website/static/src/js/menu/seo.js
index 85d959cb3c6..332fde71a4f 100644
--- a/addons/website/static/src/js/menu/seo.js
+++ b/addons/website/static/src/js/menu/seo.js
@@ -220,6 +220,8 @@ var HtmlPage = Class.extend(mixins.PropertiesMixin, {
init: function () {
mixins.PropertiesMixin.init.call(this);
this.initTitle = this.title();
+ this.defaultTitle = $('meta[name="default_title"]').attr('content');
+ this.defaultDescription = $('meta[name="default_description"]').attr('content') || _t("The description will be generated by social media based on page content unless you specify one.");
this.initDescription = this.description();
},
url: function () {
@@ -230,7 +232,7 @@ var HtmlPage = Class.extend(mixins.PropertiesMixin, {
},
changeTitle: function (title) {
// TODO create tag if missing
- $('title').text(title.trim() || this.initTitle);
+ $('title').text(title.trim() || this.defaultTitle);
this.trigger('title-changed', title);
},
description: function () {
@@ -348,9 +350,12 @@ var MetaTitleDescription = Widget.extend({
if (!this.canEditDescription) {
this.$description.attr('disabled', true);
}
-
- this.$title.val(this.htmlPage.title());
- this.$description.val(this.htmlPage.description());
+ if (this.htmlPage.title().trim() !== this.htmlPage.defaultTitle.trim()) {
+ this.$title.val(this.htmlPage.title());
+ }
+ if (this.htmlPage.description().trim() !== this.htmlPage.defaultDescription.trim()) {
+ this.$description.val(this.htmlPage.description());
+ }
this._descriptionOnChange();
},
@@ -358,13 +363,13 @@ var MetaTitleDescription = Widget.extend({
* Get the current title
*/
getTitle: function () {
- return this.$title.val().trim() || this.htmlPage.initTitle;
+ return this.$title.val().trim() || this.htmlPage.defaultTitle;
},
/**
* Get the current description
*/
getDescription: function () {
- return this.$description.val();
+ return this.$description.val() || this.htmlPage.defaultDescription;
},
/**
* @private
diff --git a/addons/website/static/src/xml/website.seo.xml b/addons/website/static/src/xml/website.seo.xml
index bf2de26d4ce..1aac9fc49a7 100644
--- a/addons/website/static/src/xml/website.seo.xml
+++ b/addons/website/static/src/xml/website.seo.xml
@@ -62,13 +62,13 @@
-
+
@@ -140,7 +140,7 @@
-
+
diff --git a/addons/website/views/website_templates.xml b/addons/website/views/website_templates.xml
index 36e376975d2..6da73cda8dd 100644
--- a/addons/website/views/website_templates.xml
+++ b/addons/website/views/website_templates.xml
@@ -173,14 +173,15 @@
'data-oe-company-name': res_company.name
}"/>
+
+
+
+ |
-
-
-
- |
+
@@ -188,17 +189,18 @@
-
+
+
+ and main_object.website_meta_description or website_meta_description or website_meta.get('meta_description', '')"/>
-
+
diff --git a/addons/website_blog/models/website_blog.py b/addons/website_blog/models/website_blog.py
index 6616b62ce43..c6a4fda0b3b 100644
--- a/addons/website_blog/models/website_blog.py
+++ b/addons/website_blog/models/website_blog.py
@@ -274,4 +274,5 @@ class BlogPost(models.Model):
blog_post_cover_properties = json.loads(self.cover_properties)
res['default_opengraph']['og:image'] = res['default_twitter']['twitter:image'] = blog_post_cover_properties.get('background-image', 'none')[4:-1]
res['default_opengraph']['og:title'] = res['default_twitter']['twitter:title'] = self.name
+ res['default_meta_description'] = self.subtitle
return res
diff --git a/addons/website_event/models/event.py b/addons/website_event/models/event.py
index 90dc9f0a856..17d9b1bd328 100644
--- a/addons/website_event/models/event.py
+++ b/addons/website_event/models/event.py
@@ -154,4 +154,5 @@ class Event(models.Model):
res['default_opengraph']['og:title'] = res['default_twitter']['twitter:title'] = self.name
res['default_opengraph']['og:description'] = res['default_twitter']['twitter:description'] = self.date_begin
res['default_twitter']['twitter:card'] = 'summary'
+ res['default_meta_description'] = self.date_begin
return res
diff --git a/addons/website_forum/models/forum.py b/addons/website_forum/models/forum.py
index 60a6edea242..be2a5822127 100644
--- a/addons/website_forum/models/forum.py
+++ b/addons/website_forum/models/forum.py
@@ -389,6 +389,7 @@ class Post(models.Model):
res['default_opengraph']['og:description'] = res['default_twitter']['twitter:description'] = self.plain_content
res['default_opengraph']['og:image'] = res['default_twitter']['twitter:image'] = "/web/image/res.users/%s/image" % (self.create_uid.id)
res['default_twitter']['twitter:card'] = 'summary'
+ res['default_meta_description'] = self.plain_content
return res
@api.constrains('parent_id')
diff --git a/addons/website_sale/models/product.py b/addons/website_sale/models/product.py
index c3c641bedff..e4d37a6ec76 100644
--- a/addons/website_sale/models/product.py
+++ b/addons/website_sale/models/product.py
@@ -376,6 +376,7 @@ class ProductTemplate(models.Model):
res['default_opengraph']['og:description'] = res['default_twitter']['twitter:description'] = self.description_sale
res['default_opengraph']['og:title'] = res['default_twitter']['twitter:title'] = self.name
res['default_opengraph']['og:image'] = res['default_twitter']['twitter:image'] = "/web/image/product.template/%s/image" % (self.id)
+ res['default_meta_description'] = self.description_sale
return res
@api.multi
diff --git a/addons/website_slides/models/slide_slide.py b/addons/website_slides/models/slide_slide.py
index 7b05ed91584..91c327b9090 100644
--- a/addons/website_slides/models/slide_slide.py
+++ b/addons/website_slides/models/slide_slide.py
@@ -669,4 +669,5 @@ class Slide(models.Model):
res['default_opengraph']['og:title'] = res['default_twitter']['twitter:title'] = self.name
res['default_opengraph']['og:description'] = res['default_twitter']['twitter:description'] = self.description
res['default_opengraph']['og:image'] = res['default_twitter']['twitter:image'] = "/web/image/slide.slide/%s/image_small" % (self.id)
+ res['default_meta_description'] = self.description
return res