From b8f3135479ef520ec0dbbcedfd2995671df47da5 Mon Sep 17 00:00:00 2001 From: "Turkesh Patel (Open ERP)" Date: Fri, 4 Apr 2014 14:52:12 +0530 Subject: [PATCH] [IMP] improvedd code to set proper colour on voted thumb and accepted answer. bzr revid: tpa@tinyerp.com-20140404092212-7ey70f7dywtox0zc --- addons/website_forum/models/forum.py | 6 +++--- addons/website_forum/static/src/js/website_forum.js | 13 ++++++++----- addons/website_forum/views/website_forum.xml | 9 ++++----- 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/addons/website_forum/models/forum.py b/addons/website_forum/models/forum.py index 7814c244d2d..0e6ac90835f 100644 --- a/addons/website_forum/models/forum.py +++ b/addons/website_forum/models/forum.py @@ -72,7 +72,7 @@ class Post(osv.Model): _inherit = ['mail.thread', 'website.seo.metadata'] def _get_votes(self, cr, uid, ids, field_name, arg, context): - res = dict.fromkeys(ids, False) + res = dict.fromkeys(ids, 0) # Note: read_group is not returning all fields which we passed in list.when it will work uncomment this code and remove remaining code #Vote = self.pool['website.forum.post.vote'] #data = Vote.read_group(cr, uid, [('post_id','in', ids), ('user_id', '=', uid)], [ "post_id", "vote"], groupby=["post_id"], context=context) @@ -84,7 +84,7 @@ class Post(osv.Model): if vote.user_id.id == uid: if vote.vote == '1': res[post.id] = 1 - else: + elif vote.vote == '-1': res[post.id] = -1 return res @@ -177,7 +177,7 @@ class Post(osv.Model): help="Comments on forum post", ), - 'user_vote':fields.function(_get_votes, string="My Vote", type='boolean', + 'user_vote':fields.function(_get_votes, string="My Vote", type='integer', store={ 'website.forum.post': (lambda self, cr, uid, ids, c={}: ids, ['vote_ids'], 10), 'website.forum.post.vote': (_get_vote, [], 10), diff --git a/addons/website_forum/static/src/js/website_forum.js b/addons/website_forum/static/src/js/website_forum.js index f19d7a5aeea..69ec93454fa 100644 --- a/addons/website_forum/static/src/js/website_forum.js +++ b/addons/website_forum/static/src/js/website_forum.js @@ -1,6 +1,6 @@ $(document).ready(function () { - $('.fa-thumbs-up ,.fa-thumbs-down').on('click', function (ev) { + $('.vote_up ,.vote_down').on('click', function (ev) { ev.preventDefault(); var $link = $(ev.currentTarget); var value = $link.attr("value") @@ -34,7 +34,7 @@ $(document).ready(function () { } } else { $link.parent().find("#vote_count").html(data['vote_count']); - if (data == 0) { + if (data['vote_count'] == 0) { $link.parent().find(".text-success").removeClass("text-success"); $link.parent().find(".text-warning").removeClass("text-warning"); } else { @@ -60,7 +60,7 @@ $(document).ready(function () { return false; }); - $('.fa-check-circle').on('click', function (ev) { + $('.accept_answer').on('click', function (ev) { ev.preventDefault(); var $link = $(ev.currentTarget); openerp.jsonRpc("/forum/correct_answer", 'call', { @@ -83,8 +83,11 @@ $(document).ready(function () { $link.parent().append($warning); } } else { - $link.parents().find(".oe_answer_true").removeClass("oe_answer_true").addClass('oe_answer_false'); - $link.removeClass("oe_answer_false").addClass('oe_answer_true'); + if (data) { + $link.parents().find(".oe_answer_false").removeClass("oe_answer_false").addClass('oe_answer_true'); + } else { + $link.parents().find(".oe_answer_true").removeClass("oe_answer_true").addClass('oe_answer_false'); + } } }); return true; diff --git a/addons/website_forum/views/website_forum.xml b/addons/website_forum/views/website_forum.xml index 86430d47f91..2f396c3bdac 100644 --- a/addons/website_forum/views/website_forum.xml +++ b/addons/website_forum/views/website_forum.xml @@ -376,10 +376,10 @@