From 18068a5e7984a72864face3a3243816dcf4284d3 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Fri, 22 Aug 2014 08:30:29 +0200 Subject: [PATCH] [FIX] website.layout hreflangs - First line is not correct due to url_for() refactoring's leftover - href's should be full urls with domain name - Use short language for hreflang if possible --- addons/website/models/website.py | 26 +++++++++++++++++++++- addons/website/views/website_templates.xml | 7 +++--- 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/addons/website/models/website.py b/addons/website/models/website.py index b8c7057757b..a1414f204bc 100644 --- a/addons/website/models/website.py +++ b/addons/website/models/website.py @@ -233,7 +233,31 @@ class website(osv.osv): return [(lg.code, lg.name) for lg in website.language_ids] def get_languages(self, cr, uid, ids, context=None): - return self._get_languages(cr, uid, ids[0]) + return self._get_languages(cr, uid, ids[0], context=context) + + def get_alternate_languages(self, cr, uid, ids, req=None, context=None): + langs = [] + if req is None: + req = request.httprequest + default = self.get_current_website(cr, uid, context=context).default_lang_code + uri = req.path + if req.query_string: + uri += '?' + req.query_string + shorts = [] + for code, name in self.get_languages(cr, uid, ids, context=context): + lg_path = ('/' + code) if code != default else '' + lg = code.split('_') + shorts.append(lg[0]) + lang = { + 'hreflang': ('-'.join(lg)).lower(), + 'short': lg[0], + 'href': req.url_root[0:-1] + lg_path + uri, + } + langs.append(lang) + for lang in langs: + if shorts.count(lang['short']) == 1: + lang['hreflang'] = lang['short'] + return langs def get_current_website(self, cr, uid, context=None): # TODO: Select website, currently hard coded diff --git a/addons/website/views/website_templates.xml b/addons/website/views/website_templates.xml index 7c5b633e21c..ff0f624fa28 100644 --- a/addons/website/views/website_templates.xml +++ b/addons/website/views/website_templates.xml @@ -83,10 +83,9 @@ <t t-esc="title"/> - - - - + + +