diff --git a/addons/website/controllers/main.py b/addons/website/controllers/main.py index 94bfd5f0d6d..af6554f483c 100644 --- a/addons/website/controllers/main.py +++ b/addons/website/controllers/main.py @@ -43,7 +43,8 @@ class QueryURL(object): self.path_args = OrderedSet(path_args or []) def __call__(self, path=None, path_args=None, **kw): - path = path or self.path + path_prefix = path or self.path + path = '' for key, value in self.args.items(): kw.setdefault(key, value) path_args = OrderedSet(path_args or []) | self.path_args @@ -65,6 +66,8 @@ class QueryURL(object): path += '/' + key + '/' + value if fragments: path += '?' + '&'.join(fragments) + if not path.startswith(path_prefix): + path = path_prefix + path return path diff --git a/addons/website_blog/controllers/main.py b/addons/website_blog/controllers/main.py index 5a03b067282..902eee77535 100644 --- a/addons/website_blog/controllers/main.py +++ b/addons/website_blog/controllers/main.py @@ -215,9 +215,7 @@ class WebsiteBlog(http.Controller): if blog: values['main_object'] = blog - values['blog_url'] = QueryURL('', ['blog', 'tag'], blog=blog, tag=tag, date_begin=date_begin, date_end=date_end, search=search) - else: - values['blog_url'] = QueryURL('/blog', ['tag'], date_begin=date_begin, date_end=date_end, search=search) + values['blog_url'] = QueryURL('/blog', ['blog', 'tag'], blog=blog, tag=tag, date_begin=date_begin, date_end=date_end, search=search) return request.render("website_blog.blog_post_short", values)