diff --git a/addons/website_blog/controllers/main.py b/addons/website_blog/controllers/main.py index 61a248da1a8..cb655585d04 100644 --- a/addons/website_blog/controllers/main.py +++ b/addons/website_blog/controllers/main.py @@ -159,7 +159,8 @@ class WebsiteBlog(http.Controller): return request.website.render("website_blog.index", values) - @website.route(['/blog/nav'], type='http', auth="public") + # TODO: Refactor (used in website_blog.js for archive links) + @website.route(['/blog/nav'], type='http', auth="public", multilang=True) def nav(self, **post): cr, uid, context = request.cr, request.uid, request.context blog_post_ids = request.registry['blog.post'].search( @@ -171,9 +172,10 @@ class WebsiteBlog(http.Controller): blog_post_data = [ { 'id': blog_post.id, - 'name': blog_post.name, 'website_published': blog_post.website_published, - 'category_id': blog_post.category_id and blog_post.category_id.id or False, + 'fragment': request.website.render("website_blog.blog_archive_link", { + 'blog_post': blog_post + }), } for blog_post in request.registry['blog.post'].browse(cr, uid, blog_post_ids, context=context) ] diff --git a/addons/website_blog/static/src/js/website_blog.js b/addons/website_blog/static/src/js/website_blog.js index ef26187f3c2..84e40ec3f12 100644 --- a/addons/website_blog/static/src/js/website_blog.js +++ b/addons/website_blog/static/src/js/website_blog.js @@ -8,15 +8,14 @@ $(document).ready(function () { e.preventDefault(); var $ul = $(this).next("ul"); if (!$ul.find('li').length) { + // TODO: Why POST? A GET would be more appropriate... + // This should be done server side anyway... $.post('/blog/nav', {'domain': $(this).data("domain")}, function (result) { var blog_id = +window.location.pathname.split("/").pop(); $(JSON.parse(result)).each(function () { - var $a = $('').text(this.name); - var $li = $("
").append($a); - if (blog_id == this.id) - $li.addClass("active"); - if (!this.website_published) - $a.css("color", "red"); + var $li = $($.parseHTML(this.fragment)); + if (blog_id == this.id) $li.addClass("active"); + if (!this.website_published) $li.find('a').css("color", "red"); $ul.append($li); }); @@ -38,4 +37,4 @@ $(document).ready(function () { }); } }); -}); +}); \ No newline at end of file diff --git a/addons/website_blog/views/website_blog_templates.xml b/addons/website_blog/views/website_blog_templates.xml index b77214f020f..458811545fd 100644 --- a/addons/website_blog/views/website_blog_templates.xml +++ b/addons/website_blog/views/website_blog_templates.xml @@ -311,5 +311,11 @@ + +