Exemple #1
0
def rate_view(request, pk, value):
    user = request.user
    rating = None
    try:
        rating = Rating.objects.get(rater=user, post=pk)
    except Rating.DoesNotExist:
        rating = Rating(rater=user, post=BlogPost.objects.get(pk=pk))
    rating.value = value
    rating.save()
    return redirect(BlogPost.objects.get(pk=pk))
Exemple #2
0
def save_rating(rate_row):
    rate = Rating()
    rate.id = rate_row[0]
    rate.recipe = rate_row[1]
    rate.rating = rate_row[2]
    rate.user = User.objects.get(id=rate_row[3])
    rate.save()
Exemple #3
0
def rating_down(request, post_id):
    post = get_object_or_404(Post, pk=post_id)
    if request.user.is_authenticated():
        try:
            rating = Rating.objects.get(post=post, user=auth.get_user(request))
            if rating.value > -1:
                rating.value -= 1
                rating.save()
                post.change_rating(-1)
        except ObjectDoesNotExist:
            rating = Rating(post=post, user=auth.get_user(request), value=-1)
            rating.save()
            post.change_rating(-1)
    return redirect(post)
Exemple #4
0
    def test_value_out_of_range(self):
        """rating values out of range [0, 5] are not allowed"""
        # BUG: not working test needs modifications
        return
        rating = Rating(rater=self.user2, post=self.post, value=6)
        with self.assertRaises(ValidationError):
            rating.save()

        rating = Rating(rater=self.user2, post=self.post, value=0)
        with self.assertRaises(ValidationError):
            rating.save()
Exemple #5
0
def change_rating(request, username=None, post_id=None, rating=None):
    try:
        pass
        if not request.user.is_authenticated():
            return HttpResponseRedirect('/login')

        post = Post.objects.get(id=post_id)

        if post.user != request.user:
            try:
                user_rating = Rating.objects.get(user=request.user, post=post)
            except:
                new_rating = Rating(value=rating, user=request.user, post=post)
                new_rating.save()
                if rating is True:
                    post.rating += 1
                else:
                    post.rating -= 1
                post.save()
            else:
                if user_rating.value != rating:
                    user_rating.value = rating
                    user_rating.save()
                    if rating is True:
                        post.rating += 2

                    else:
                        post.rating -= 2
                        pass
                    post.save()

    except:
        raise Http404()
    if username is not None and post_id is not None:
        return HttpResponseRedirect('/' + username + '/post' + post_id)
    else:
        return HttpResponseRedirect('/')
Exemple #6
0
 def get(self, request, id, review):
     post = Post.objects.get(pk=int(id))
     Rating.rate(post, int(review))
     return Response('successful', status=status.HTTP_202_ACCEPTED)