From ebdfbc58f1beba3fd7ab39a8fc560a4e7f1b9fb1 Mon Sep 17 00:00:00 2001 From: ddm Date: Wed, 16 Oct 2013 18:02:32 +0200 Subject: [PATCH] [FIX] SEO for shop products bzr revid: ddm@openerp.com-20131016160232-e5rxi1hoofm5anrw --- addons/website/models/ir_ui_view.py | 4 ++-- addons/website/static/src/js/website.seo.js | 26 ++++++++++++--------- addons/website_sale/models/product.py | 3 +++ 3 files changed, 20 insertions(+), 13 deletions(-) diff --git a/addons/website/models/ir_ui_view.py b/addons/website/models/ir_ui_view.py index 1b680549164..d6ad607fa3f 100644 --- a/addons/website/models/ir_ui_view.py +++ b/addons/website/models/ir_ui_view.py @@ -11,8 +11,8 @@ class view(osv.osv): 'inherited_option_ids': fields.one2many('ir.ui.view','inherit_option_id','Optional Inheritancies'), 'page': fields.boolean("Whether this view is a web page template (complete)"), 'website_meta_title': fields.char("Website meta title", size=70, translate=True), - 'website_meta_description': fields.text("Website meta description", translate=True), - 'website_meta_keywords': fields.char("Website meta keywords", size=70, translate=True), + 'website_meta_description': fields.text("Website meta description", size=160, translate=True), + 'website_meta_keywords': fields.char("Website meta keywords", translate=True), } _defaults = { 'page': False, diff --git a/addons/website/static/src/js/website.seo.js b/addons/website/static/src/js/website.seo.js index 4413f628afa..342837f43c1 100644 --- a/addons/website/static/src/js/website.seo.js +++ b/addons/website/static/src/js/website.seo.js @@ -323,6 +323,9 @@ 'click button[data-action=update]': 'update', 'hidden.bs.modal': 'destroy', }, + canEditTitle: false, + canEditDescription: false, + canEditKeywords: false, maxTitleSize: 65, maxDescriptionSize: 155, start: function () { @@ -361,18 +364,19 @@ $modal.modal(); }, disableUnsavableFields: function () { - var $modal = this.$el; - this.loadMetaData().then(function (data) { - var canEditTitle = data && ('website_meta_title' in data); - var canEditDescription = data && ('website_meta_description' in data); - var canEditKeywords = data && ('website_meta_keywords' in data); - if (!canEditTitle) { + var self = this; + var $modal = self.$el; + self.loadMetaData().then(function (data) { + self.canEditTitle = data && ('website_meta_title' in data); + self.canEditDescription = data && ('website_meta_description' in data); + self.canEditKeywords = data && ('website_meta_keywords' in data); + if (!self.canEditTitle) { $modal.find('input[name=seo_page_title]').attr('disabled', true); } - if (!canEditDescription) { + if (!self.canEditDescription) { $modal.find('textarea[name=seo_page_description]').attr('disabled', true); } - if (!canEditTitle && !canEditDescription && !canEditKeywords) { + if (!self.canEditTitle && !canEditDescription && !canEditKeywords) { $modal.find('button[data-action=update]').attr('disabled', true); } }); @@ -417,13 +421,13 @@ update: function () { var self = this; var data = {}; - if (!this.htmlPage.isTitleEditable()) { + if (self.canEditTitle) { data.website_meta_title = self.htmlPage.title(); } - if (!this.htmlPage.isDescriptionEditable()) { + if (self.canEditDescription) { data.website_meta_description = self.htmlPage.description(); } - if (!this.htmlPage.isKeywordsEditable()) { + if (self.canEditKeywords) { data.website_meta_keywords = self.keywordList.keywords().join(", "); } self.saveMetaData(data).then(function () { diff --git a/addons/website_sale/models/product.py b/addons/website_sale/models/product.py index 04ebbeaf39e..f48464335eb 100644 --- a/addons/website_sale/models/product.py +++ b/addons/website_sale/models/product.py @@ -50,6 +50,9 @@ class product_template(osv.Model): 'website_style_ids' : fields.many2many('website.product.style','product_website_style_rel', 'product_id', 'style_id', 'Styles'), 'website_sequence': fields.integer('Sequence', help="Determine the display order in the Website E-commerce"), 'website_url': fields.function(_website_url, string="Website url"), + 'website_meta_title': fields.char("Website meta title", size=70, translate=True), + 'website_meta_description': fields.text("Website meta description", size=160, translate=True), + 'website_meta_keywords': fields.char("Website meta keywords", translate=True), } _defaults = { 'website_size_x': 1,