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 })