diff --git a/website_canonical_url/README.rst b/website_canonical_url/README.rst index 5fce9a2318..cb7c5adfa7 100644 --- a/website_canonical_url/README.rst +++ b/website_canonical_url/README.rst @@ -27,6 +27,7 @@ Contributors * Thomas Rehn * Rami Alwafaie +* Jairo Llopis Maintainer ---------- diff --git a/website_canonical_url/__openerp__.py b/website_canonical_url/__openerp__.py index 9bc10736e4..913db0819e 100644 --- a/website_canonical_url/__openerp__.py +++ b/website_canonical_url/__openerp__.py @@ -4,13 +4,11 @@ { 'name': "Website Canoncial URL", - 'summary': """ - Canonical URL in Website Headers - """, - 'author': "initOS GmbH, Odoo Community Association (OCA)", + 'summary': "Canonical URL in Website Headers", + 'author': "initOS GmbH, Tecnativa, Odoo Community Association (OCA)", 'website': "http://www.initos.com", 'category': 'Website', - 'version': '8.0.1.0.0', + 'version': '8.0.1.1.0', 'license': 'AGPL-3', 'depends': [ 'website', diff --git a/website_canonical_url/models/website.py b/website_canonical_url/models/website.py index 531d7cbc35..9ec60a0c05 100644 --- a/website_canonical_url/models/website.py +++ b/website_canonical_url/models/website.py @@ -15,14 +15,21 @@ def get_canonical_url(self, req=None): canonical_url = None if req is None: req = request - if req and req.httprequest.base_url: - lang = self._context['lang'] + if req and req.httprequest.path: + lang = self.env.lang if lang == request.website.default_lang_code: - canonical_url = req.httprequest.base_url + canonical_url = req.httprequest.path else: - url_parts = urlparse(req.httprequest.base_url) + url_parts = urlparse(req.httprequest.path) url_parts = list(url_parts) # change the path of the url url_parts[2] = lang + url_parts[2] canonical_url = urlunparse(url_parts) + # Special case for rerouted requests to root path + try: + if (canonical_url.startswith("/page/") and + self.menu_id.child_id[0].url == canonical_url): + canonical_url = "/" + except: + pass return canonical_url