Beispiel #1
0
def get_category_data(category,user):
    data = get_tag_data(category.tag, user)
    numPositive = getNumPosRatings(category)
    numNegative = getNumNegRatings(category)
    totalRatings = numPositive+numNegative
    data['categoryID'] = category.id
    if totalRatings != 0:
        data['categoryRating'] = numPositive / totalRatings
    else:
        data['categoryRating'] = 0.0

    try:
        pgr = PageRelationship.objects.get(businesstag=category)
    except PageRelationship.DoesNotExist:
        pg = Page.objects.create(name=category.tag.descr)
        pgr = PageRelationship.objects.create(businesstag=category,page = pg)
        
    
    data['categoryContent'] = pgr.page.rendered
    tagfilter = UserTag.objects.filter(user=user,tag=category)
    if tagfilter.count() > 0:
        data['userIsSubscribed'] = True
    else:
        data['userIsSubscribed'] = False 
    return data
Beispiel #2
0
def comment_vote(request):

    logger.debug('in comment_vote')
    if request.method == 'POST':
        try:
            comment = Comment.objects.get(id=(request.POST['id']))
        except:
            return HttpResponse("{'success': 'false'}")

        if request.POST['type'] == 'up':
            rat = 1  # rating.rating + 1
            res = 'pos'
        else:
            rat = 0  # rating.rating - 1
            res = 'neg'
        
        try:
            rating = CommentRating.objects.get(comment=comment, user=request.user)
        except CommentRating.DoesNotExist:
            logger.debug("In vote create a new comment rating!")
            rating = CommentRating.objects.create(comment=comment, user=request.user, rating=rat)
        except:
            logger.error("Unexpected error:", sys.exc_info()[0])
        
        rating.save()
        response_data = dict()
        response_data['id'] = str(request.POST['id'])
        response_data['success'] = 'true'
        response_data['rating'] = res
        response_data['pos_rating'] = getNumPosRatings(comment)
        response_data['neg_rating'] = getNumNegRatings(comment)
        return HttpResponse(json.dumps(response_data), mimetype="application/json")
        #return HttpResponse("{'success':'true', 'rating': '" + str(rat) + "'}")
    else:
        raise Http404('What are you doing here?')
Beispiel #3
0
def remove_comment_vote(request):
    logger.debug('Remove Comment Vote!')
    if request.method == 'POST':
        try:
            comment = Comment.objects.get(id=(request.POST['id']))
        except:
            logger.debug("Comment does not exist")
            return HttpResponse("{'success': 'false'}")

        try:
            rating = CommentRating.objects.filter(comment=comment, user=request.user)
        except CommentRating.DoesNotExist:
            logger.debug("Comment does not exist")
            pass
        else:
            logger.debug("Deleting a comment rating")
            rating.delete()

        response_data = dict()
        response_data['id'] = str(request.POST['id'])
        response_data['success'] = 'true'
        response_data['pos_rating'] = getNumPosRatings(comment)
        response_data['neg_rating'] = getNumNegRatings(comment)

        return HttpResponse(json.dumps(response_data), mimetype="application/json")
    else:
        raise Http404('What are you doing here?')
Beispiel #4
0
def remove_tag_vote(request):
    logger.debug("Remove Tag Vote!")
    if request.method == "POST":
        try:
            tag = BusinessTag.objects.get(id=request.POST["id"])
        except Tag.DoesNotExist:
            logger.debug("Tag does not exist")
            return HttpResponse("{'success': 'false'}")

        try:
            rating = TagRating.objects.filter(tag=tag, user=request.user)
        except TagRating.DoesNotExist:
            logger.debug("Tag does not exist")
            pass
        else:
            logger.debug("Deleting a tag rating")
            rating.delete()

        response_data = dict()
        response_data["id"] = str(request.POST["id"])
        response_data["success"] = "true"
        response_data["pos_rating"] = getNumPosRatings(tag)
        response_data["neg_rating"] = getNumNegRatings(tag)

        return HttpResponse(json.dumps(response_data), mimetype="application/json")
    else:
        raise Http404("What are you doing here?")
Beispiel #5
0
def vote(request):
    if request.method == "POST":
        vote_on = request.POST["id"]
        try:
            activity = Activity.objects.get(id=request.POST["id"])
        except Activity.DoesNotExist:
            return HttpResponse("{'success': 'false'}")

        if request.POST["type"] == "up":
            rat = 5  # rating.rating + 1
            res = "pos"
        else:
            rat = 1  # rating.rating - 1
            res = "neg"

        try:
            rating = ActRating.objects.get(activity=activity, user=request.user)
        except ActRating.DoesNotExist:
            logger.debug("In vote create a new rating!")
            rating = ActRating.objects.create(activity=activity, user=request.user, rating=rat)
        else:
            sys.stderr.write("rating already exists :(")
            return HttpResponse("{'success': 'false'}")
        rating.save()
        response_data = dict()
        response_data["id"] = str(request.POST["id"])
        response_data["success"] = "true"
        response_data["rating"] = res
        response_data["pos_rating"] = getNumPosRatings(activity)
        response_data["neg_rating"] = getNumNegRatings(activity)
        return HttpResponse(json.dumps(response_data), mimetype="application/json")
        # return HttpResponse("{'success':'true', 'rating': '" + str(rat) + "'}")
    else:
        raise Http404("What are you doing here?")
Beispiel #6
0
def get_pages(business,tags,user=None):
    pages = []
    for t in tags:
        try:
            bt = BusinessTag.objects.get(business=business,tag=t)
            relationship = PageRelationship.objects.get(businesstag=bt)
        except MultipleObjectsReturned:
            #logger.error('Multiple Pages returned in '+str(__name__))
            #XXX 
            relationship = PageRelationship.objects.filter(businesstag=bt)[0]
        except :
            add_tag_to_bus(business,t,get_default_user())
            bt = BusinessTag.objects.get(business=business,tag=t)
            relationship = PageRelationship.objects.get(businesstag=bt)

       
        relationship.businesstag.pos_ratings = getNumPosRatings(relationship.businesstag)
        relationship.businesstag.neg_ratings = getNumNegRatings(relationship.businesstag)
        relationship.businesstag.is_relevant = isTagRelevant(relationship.businesstag)
        if user:
            try:
                rat =  TagRating.objects.get(user=user,tag=bt)
                relationship.businesstag.this_rat = rat.rating
            except:
                pass
        pages.append(relationship)
    
    
        
  
    return pages
Beispiel #7
0
def get_top_photo_comments(photo,N):
    phcomments = PhotoComment.objects.filter(photo=photo)
    comment_list = []
    for pc in phcomments:
        if pc.thread.reply_to is None:
            c = pc.thread
            c.pos_ratings = getNumPosRatings(c)
            c.neg_ratings = getNumNegRatings(c)
            comment_list.append(c)
            

    sortedComments = sorted(comment_list, cmp = lambda l, r: cmp(l.pos_ratings, r.pos_ratings), reverse=True)
    return sortedComments[:N]
Beispiel #8
0
def get_comment_data(comment,user):
    data = dict()
    data['commentCreator'] = comment.user.username
    data['posted'] = comment.date
    data['content'] = comment.descr
    numPositive = getNumPosRatings(comment)
    numNegative = getNumNegRatings(comment)
    data['positiveVotes'] = numPositive
    data['negativeVotes'] = numNegative
    
    try:
        thisUsersRating = DiscussionRating.objects.get(discussion=comment,user=user)
    except:
        thisUsersRating = None
    
    data['thisUsersRating'] = thisUsersRating       
    return data
Beispiel #9
0
def get_photo_data(photo,user):
    data = dict()
    data['photoTitle'] = photo.title
    data['photoCaption'] = photo.caption
    data['photoURL'] = photo.image.url
    data['photoCreator'] = photo.user.username
    numPositive = getNumPosRatings(photo)
    numNegative = getNumNegRatings(photo)
    data['positiveVotes'] = numPositive
    data['negativeVotes'] = numNegative
    
    try:
        thisUsersRating = PhotoRating.objects.get(photo=photo,user=user)
    except:
        thisUsersRating = None
    
    data['thisUsersRating'] = thisUsersRating       
    return data
Beispiel #10
0
def get_business_comments(business,user=False):
    buscomments = BusinessComment.objects.filter(business=business).order_by('-date')

    comment_list = []
    for bc in buscomments:
        if bc.thread.reply_to is None: #root tag comment
            comment_list.append("open-even")
            recurse_comments(bc.thread,comment_list,False)
            comment_list.append("close")    
    results = []              
    for c in comment_list:
        if c != "open-even" and c != "open-odd" and c != "close":
            try:
                rat =  CommentRating.objects.get(comment=c)
                c.this_rat = rat.rating
                c.pos_ratings = getNumPosRatings(c)
                c.neg_ratings = getNumNegRatings(c)
            except:
                c.this_rat = 0
                c.pos_ratings = 0
                c.neg_ratings = 0
        results.append(c)
    return results
Beispiel #11
0
def get_photo_comments(photo,user=False):
    phcomments = PhotoComment.objects.filter(photo=photo).order_by('-date')

    comment_list = []
    for pc in phcomments:
        if pc.thread.reply_to is None: #root tag comment
            comment_list.append("open-even")
            recurse_comments(pc.thread,comment_list,False)
            comment_list.append("close")    
    results = []              
    for c in comment_list:
        if c != "open-even" and c != "open-odd" and c != "close":
            try:
                rat =  CommentRating.objects.get(comment=c)
                c.this_rat = rat.rating
                c.pos_ratings = getNumPosRatings(c)
                c.neg_ratings = getNumNegRatings(c)
            except:
                c.this_rat = 0
                c.pos_ratings = 0
                c.neg_ratings = 0
        results.append(c)
    return results
Beispiel #12
0
def get_tag_comments(b,tag):
    logger.debug('get for'+str(b)+ ' and tag ' + str(tag.descr))
    tagcomments = TagComment.objects.filter(business=b,tag=tag).order_by('-date')

    comment_list = []
    for tc in tagcomments:
        if tc.thread.reply_to is None: #root tag comment
            comment_list.append("open-even")
            recurse_comments(tc.thread,comment_list,False)
            comment_list.append("close")    
    results = []              
    for c in comment_list:
        if c != "open-even" and c != "open-odd" and c != "close":
            try:
                rat =  CommentRating.objects.get(comment=c)
                c.this_rat = rat.rating
                c.pos_ratings = getNumPosRatings(c)
                c.neg_ratings = getNumNegRatings(c)
            except:
                c.this_rat = 0
                c.pos_ratings = 0
                c.neg_ratings = 0
        results.append(c)
    return results    
Beispiel #13
0
def tag_vote(request):
    logger.debug("tag_vote")
    if request.method == "POST":
        try:
            tag = BusinessTag.objects.get(id=request.POST["id"])
        except Tag.DoesNotExist:
            return HttpResponse("{'success': 'false'}")

        if request.POST["type"] == "up":
            rat = 5  # rating.rating + 1
            res = "pos"
        else:
            rat = 1  # rating.rating - 1
            res = "neg"
        try:
            rating = TagRating.objects.get(tag=tag, user=request.user)
        except TagRating.DoesNotExist:
            logger.debug("In tag vote create a new tag rating!")
            rating = TagRating.objects.create(tag=tag, user=request.user, rating=rat)
        except:
            logger.error("Unexpected error:", sys.exc_info()[0])
        else:
            logger.debug("Tag rating already exists :(")
            return HttpResponse("{'success': 'false'}")
        rating.save()
        response_data = dict()
        response_data["id"] = str(request.POST["id"])
        response_data["success"] = "true"
        response_data["rating"] = res
        response_data["pos_rating"] = getNumPosRatings(tag)
        response_data["neg_rating"] = getNumNegRatings(tag)
        return HttpResponse(json.dumps(response_data), mimetype="application/json")
        # return HttpResponse("{'success':'true', 'rating': '" + str(rat) + "'}")
    else:
        logger.debug("404 raised in tag_vote")
        raise Http404("What are you doing here?")
Beispiel #14
0
def remove_vote(request):
    if request.method == "POST":
        try:
            activity = Activity.objects.get(id=request.POST["id"])
        except Activity.DoesNotExist:
            return HttpResponse("{'success': 'false'}")

        try:
            rating = ActRating.objects.filter(activity=activity, user=request.user)
        except ActRating.DoesNotExist:
            pass
        else:
            logger.debug("Deleting a actrating")
            rating.delete()

        response_data = dict()
        response_data["id"] = str(request.POST["id"])
        response_data["success"] = "true"
        response_data["pos_rating"] = getNumPosRatings(activity)
        response_data["neg_rating"] = getNumNegRatings(activity)

        return HttpResponse(json.dumps(response_data), mimetype="application/json")
    else:
        raise Http404("What are you doing here?")