Example #1
0
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))
Example #2
0
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'])
Example #3
0
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)