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()
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))
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()
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)
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('/')