def request_review(request, product_id): """ Request review :url: /request/review/(?P<product_id>\d+)/ """ data = {} u = request.user p = Product.objects.get(id=product_id) r, created = ReviewRequest.objects.get_or_create(requester=u.party, product=p) # associate with other people's reviews reviews = Review.objects.filter(product=p).exclude(reviewer=u.party) for review in reviews: review.reply_to.add(r) review.save() # change wishlist key w = Wishlist.objects.get(party=u, product=p) if reviews.filter(first_reviewed=True).exists(): w.review = Wishlist.REVIEW_RESPONDED else: w.review = Wishlist.REVIEW_REQUESTED w.save() # add a feed f = Feed(actor=u.party, action=Feed.REQUESTED, product=p) f.save() data['p'] = p data['key'] = "request" return render_to_response('web2/confirm.html', data, context_instance=RequestContext(request))
def update_description(request): """ :param POST['review']: the review I am modifying :param POST['description']: the detail :url: /web2/update/description/ """ data = {} u = request.user data['result']='0' if request.method == "POST": # get the review and description review_id = request.POST['review_id'].split('_')[1] description = request.POST['description'] logger.debug("Review %s: %s submitted"%(review_id, description)) review = Review.objects.get(id = int(review_id)) if not review.first_reviewed: review.content = description review.first_reviewed = True review.save() # add a feed f = Feed(actor=u.party, action=Feed.REVIEWED, product=review.product) f.save() else: review.content = description review.save() # add a feed f = Feed(actor=u.party, action=Feed.UPDATED_REVIEW, product=review.product) f.save() data['result'] = review.content return HttpResponse(data['result'])
def update_rating(request): """ :param POST['review_id']: the transaction I am modifying :param POST['rating']: the rating value :url: /web2/update/rating/ """ data = {'result':'Not Rated'} u = request.user if request.method == "POST": # get the transaction and description review_id = request.POST['review_id'] logger.debug("review_id:%s"%review_id) rating = request.POST['rating'] review = Review.objects.get(id = int(review_id)) if not review.first_reviewed: review.rating = int(rating) review.first_reviewed = True review.save() # add a feed f = Feed(actor=u.party, action=Feed.REVIEWED, product=review.product) f.save() else: review.rating = int(rating) review.save() # add a feed f = Feed(actor=u.party, action=Feed.UPDATED_REVIEW, product=review.product) f.save() data['result'] = review.RATING_CHOICES[review.rating][1] return JSONHttpResponse(data)