[FIX] [CLEAN] website_forum: cleaned and fixed upvote, downvote and favourite
bzr revid: tde@openerp.com-20140411171029-zeqtrko98z1jr3sm
This commit is contained in:
@@ -186,33 +186,17 @@ class WebsiteForum(http.Controller):
|
||||
})
|
||||
return request.website.render("website_forum.post_description_full", values)
|
||||
|
||||
@http.route('/forum/<int:forum_id>/question/<int:question_id>/toggle_favourite', type='json', auth="user", multilang=True, website=True)
|
||||
def question_toggle_favorite_tmp(self, forum_id, question_id, **post):
|
||||
@http.route('/forum/<model("forum.forum"):forum>/question/<model("forum.post"):question>/toggle_favourite', type='json', auth="user", multilang=True, methods=['POST'], website=True)
|
||||
def question_toggle_favorite(self, forum, question, **post):
|
||||
if not request.session.uid:
|
||||
return {'error': 'anonymous_user'}
|
||||
# forum = request.registry['forum.forum'].browse(request.cr, request.uid, forum_id, context=request.context)
|
||||
question = request.registry['forum.post'].browse(request.cr, request.uid, question_id, context=request.context)
|
||||
# TDE: add check for not public
|
||||
favourite = False if question.user_favourite else True
|
||||
print favourite
|
||||
if favourite:
|
||||
favourite_ids = [(4, request.uid)]
|
||||
else:
|
||||
favourite_ids = [(3, request.uid)]
|
||||
request.registry['forum.post'].write(request.cr, request.uid, [question.id], {'favourite_ids': favourite_ids}, context=request.context)
|
||||
print favourite_ids
|
||||
return favourite
|
||||
|
||||
@http.route('/forum/<model("forum.forum"):forum>/question/<model("forum.post"):question>/toggle_favourite', type='json', auth="user", multilang=True, methods=['POST'], website=True)
|
||||
def question_toggle_favorite(self, forum, question, **post):
|
||||
# TDE: add check for not public
|
||||
favourite = False if question.user_favourite else True
|
||||
if favourite:
|
||||
favourite_ids = [(4, request.uid)]
|
||||
else:
|
||||
favourite_ids = [(3, request.uid)]
|
||||
request.registry['forum.post'].write(
|
||||
request.cr, request.uid, [question.id], {'favourite_ids': favourite_ids}, context=request.context)
|
||||
return favourite
|
||||
|
||||
@http.route('/forum/<model("forum.forum"):forum>/question/<model("forum.post"):question>/ask_for_close', type='http', auth="user", multilang=True, website=True)
|
||||
@@ -359,28 +343,12 @@ class WebsiteForum(http.Controller):
|
||||
question = post.parent_id if post.parent_id else post
|
||||
return werkzeug.utils.redirect("/forum/%s/question/%s" % (slug(forum), slug(question)))
|
||||
|
||||
@http.route('/forum/<int:forum_id>/post/<int:post_id>/upvote', type='json', auth="public", multilang=True, website=True)
|
||||
def post_upvote_tmp(self, forum_id, post_id, **kwargs):
|
||||
if not request.session.uid:
|
||||
return {'error': 'anonymous_user'}
|
||||
# forum = request.registry['forum.forum'].browse(request.cr, request.uid, forum_id, context=request.context)
|
||||
post = request.registry['forum.post'].browse(request.cr, request.uid, post_id, context=request.context)
|
||||
return request.registry['forum.post'].vote(request.cr, request.uid, [post.id], upvote=True, context=request.context)
|
||||
|
||||
@http.route('/forum/<model("forum.forum"):forum>/post/<model("forum.post"):post>/upvote', type='json', auth="public", multilang=True, website=True)
|
||||
def post_vote(self, forum, post, **kwargs):
|
||||
if not request.session.uid:
|
||||
return {'error': 'anonymous_user'}
|
||||
return request.registry['forum.post'].vote(request.cr, request.uid, [post.id], upvote=True, context=request.context)
|
||||
|
||||
@http.route('/forum/<int:forum_id>/post/<int:post_id>/downvote', type='json', auth="public", multilang=True, website=True)
|
||||
def post_downvote_tmp(self, forum_id, post_id, **kwargs):
|
||||
if not request.session.uid:
|
||||
return {'error': 'anonymous_user'}
|
||||
# forum = request.registry['forum.forum'].browse(request.cr, request.uid, forum_id, context=request.context)
|
||||
post = request.registry['forum.post'].browse(request.cr, request.uid, post_id, context=request.context)
|
||||
return request.registry['forum.post'].vote(request.cr, request.uid, [post.id], upvote=False, context=request.context)
|
||||
|
||||
@http.route('/forum/<model("forum.forum"):forum>/post/<model("forum.post"):post>/downvote', type='json', auth="public", multilang=True, website=True)
|
||||
def post_downvote(self, forum, post, **kwargs):
|
||||
if not request.session.uid:
|
||||
|
||||
@@ -3,11 +3,7 @@ $(document).ready(function () {
|
||||
$('.vote_up ,.vote_down').on('click', function (ev) {
|
||||
ev.preventDefault();
|
||||
var $link = $(ev.currentTarget);
|
||||
var url_target = $link.data("value") == '1' ? 'upvote' : 'downvote';
|
||||
var forum_id = $link.data('forum-id');
|
||||
var post_id = $link.data('post-id');
|
||||
|
||||
openerp.jsonRpc("/forum/" + forum_id + "/post/" + post_id + "/" + url_target, 'call', {})
|
||||
openerp.jsonRpc($link.attr('href'), 'call', {})
|
||||
.then(function (data) {
|
||||
if (data['error']){
|
||||
if (data['error'] == 'own_post'){
|
||||
@@ -84,9 +80,7 @@ $(document).ready(function () {
|
||||
$('.favourite_question').on('click', function (ev) {
|
||||
ev.preventDefault();
|
||||
var $link = $(ev.currentTarget);
|
||||
var forum_id = $link.data('forum-id');
|
||||
var post_id = $link.data('post-id');
|
||||
openerp.jsonRpc("/forum/" + forum_id + "/question/" + post_id + "/toggle_favourite", 'call', {}).then(function (data) {
|
||||
openerp.jsonRpc($link.attr('href'), 'call', {}).then(function (data) {
|
||||
if (data) {
|
||||
$link.addClass("forum_favourite_question")
|
||||
} else {
|
||||
|
||||
@@ -379,10 +379,10 @@
|
||||
<template id="vote">
|
||||
<div t-attf-class="box oe_grey">
|
||||
<a t-attf-class="vote_up fa fa-thumbs-up no-decoration #{post.user_vote == 1 and 'text-success' or ''}"
|
||||
t-attf-data-post-id="#{post.id}" t-attf-data-forum-id="#{post.forum_id.id}" data-value="1"/>
|
||||
t-attf-href="/forum/#{slug(post.forum_id)}/post/#{slug(post)}/upvote"/>
|
||||
<span id="vote_count" t-esc="post.vote_count"/>
|
||||
<a t-attf-class="vote_down fa fa-thumbs-down no-decoration #{post.user_vote == -1 and 'text-warning' or ''}"
|
||||
t-attf-data-post-id="#{post.id}" t-attf-data-forum-id="#{post.forum_id.id}" data-value="-1"/>
|
||||
t-attf-href="/forum/#{slug(post.forum_id)}/post/#{slug(post)}/downvote"/>
|
||||
<div>
|
||||
votes
|
||||
</div>
|
||||
@@ -404,7 +404,7 @@
|
||||
<span t-if="question.child_count<=1">Answer</span>
|
||||
</div>
|
||||
<div>
|
||||
<a t-attf-data-forum-id="#{question.forum_id.id}" t-attf-data-post-id="#{question.id}"
|
||||
<a t-attf-href="/forum/#{slug(question.forum_id)}/question/#{slug(question)}/toggle_favourite"
|
||||
t-attf-class="favourite_question no-decoration fa fa-2x fa-star #{question.user_favourite and 'forum_favourite_question' or ''}"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user