コード例 #1
0
def bachot_like_or_dislike(request):
    user = request.user
    bachot_id = request.POST.get('bachot_id', None)
    likes_dislikes = request.POST.get('likes_dislikes', None)
    bachot = Bachot.objects.get(pk=bachot_id)
    buddy_bachot = bachot.user.buddy
    if likes_dislikes == 'like':
        bachot.likers.add(user)
        result = "Liked"
        fa = 'up'
        Notification.notify_like(user, bachot)
        if bachot.user != user:
            buddy_bachot.tmp_green_reward = buddy_bachot.tmp_green_reward + 1
            buddy_bachot.save()
    elif likes_dislikes == 'dislike':
        bachot.dislikers.add(user)
        result = "Disliked"
        fa = 'down'
        Notification.notify_dislike(user, bachot)
        if bachot.user != user:
            buddy_bachot.tmp_red_reward = buddy_bachot.tmp_red_reward + 1
            buddy_bachot.save()
    else:
        return HttpResponseBadRequest('Unknown')
    likes = bachot.likers.count()
    dislikes = bachot.dislikers.count()
    total_votes = likes + dislikes
    try:
        likes_percentage = float(likes)/float(total_votes) * 100
    except ZeroDivisionError:
        likes_percentage = 0
    try:
        dislikes_percentage = float(dislikes)/float(total_votes) * 100
    except ZeroDivisionError:
        dislikes_percentage = 0
    return render(request, 'social/_like_replacer.html', {
        'bachot': bachot,
        'result': result,
        'likes_percentage': likes_percentage,
        'dislikes_percentage': dislikes_percentage,
        'fa': fa
    })