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
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?')
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?')
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?")
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?")
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
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]
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
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
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
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
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
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?")
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?")