def get_activity(activity_type,content_id,addtime,fuser): item={} fuser=get_user_by_id(fuser) if activity_type==0: question=get_question_from_redis(content_id) if question: item={'activitytype':activity_type,'addtime':addtime,"data":question,"fuser":fuser} elif activity_type==1: answer=get_answer_by_answer_id(content_id) if answer: item={'activitytype':activity_type,'addtime':addtime,"data":answer,"fuser":fuser} elif activity_type==2: follow=QustionFollow.objects.filter(pk=content_id)#如何解决 follow=follow[0] if len(follow)>0 else None if not follow: return None question=question=get_question_from_redis(follow.question_id) follow.question=question item={'activitytype':activity_type,'addtime':addtime,"data":follow,"fuser":fuser} elif activity_type==3: evalue=AnswerEvaluation.objects.filter(pk=content_id) evalue=evalue[0] if len(evalue)>0 else None if not evalue: return None answer=get_answer_by_answer_id(evalue.answer_id) evalue.answer=answer item={'activitytype':activity_type,'addtime':addtime,"data":evalue,"fuser":fuser} return item
def get_activity(activity_type, content_id, addtime, fuser): item = {} fuser = get_user_by_id(fuser) if activity_type == 0: question = get_question_from_redis(content_id) if question: item = { 'activitytype': activity_type, 'addtime': addtime, "data": question, "fuser": fuser } elif activity_type == 1: answer = get_answer_by_answer_id(content_id) if answer: item = { 'activitytype': activity_type, 'addtime': addtime, "data": answer, "fuser": fuser } elif activity_type == 2: follow = QustionFollow.objects.filter(pk=content_id) #如何解决 follow = follow[0] if len(follow) > 0 else None if not follow: return None question = question = get_question_from_redis(follow.question_id) follow.question = question item = { 'activitytype': activity_type, 'addtime': addtime, "data": follow, "fuser": fuser } elif activity_type == 3: evalue = AnswerEvaluation.objects.filter(pk=content_id) evalue = evalue[0] if len(evalue) > 0 else None if not evalue: return None answer = get_answer_by_answer_id(evalue.answer_id) evalue.answer = answer item = { 'activitytype': activity_type, 'addtime': addtime, "data": evalue, "fuser": fuser } return item
def vote_answer(request): "用户对问题投票+表示新增-表示update 用户字投票问题尚未解决" answer_id = request.POST["answerid"] op_type = request.POST.get("type", "+") status = int(request.POST["status"]) evaluation_id = request.POST.get("evaluation_id", None) answer = get_answer_by_answer_id(int(answer_id)) if answer.user.id != request.user.id: if op_type != "+": cancel_vote_to_redis(user=request.user, answer_id=answer, status=status, evaluation_id=evaluation_id) AnswerEvaluation.evaluationobjects.cancel_vote( user=request.user, answer=answer, status=status, evaluation_id=evaluation_id) else: submit_vote_to_redis(user=request.user, answer_id=answer_id, status=status, evaluation_id=evaluation_id) evaluation_id = AnswerEvaluation.evaluationobjects.submit_voter( user=request.user, answer=answer, status=status, evaluation_id=evaluation_id) return HttpResponse("{\"evaluation_id\":\"" + str(evaluation_id) + "\"}") return HttpResponse("{\"status\":\"ok\"}") else: return HttpResponse("")
def add_comment(request): "添加评论" if request.method == "POST": answer_id = request.POST.get("answerid", None) question_id = request.POST.get("questionid", None) content = request.POST.get("content", None) touser_id = int(request.POST.get("touser", request.user.id)) answer = get_answer_by_answer_id(int(answer_id)) if answer_id and content and touser_id: addtime = datetime.now() comment_id = add_comment_to_redis(answer_id=answer_id, addtime=addtime, content=content, user=request.user, touser_id=touser_id) comment = Comment.commentobjects.create(id=comment_id, answer=answer, addtime=addtime, content=content, user=request.user, touser_id=touser_id) html_str = render_to_string( "commentlist.html", {"comments_list": [comment]}, context_instance=RequestContext(request)) return HttpResponse(html_str) return HttpResponse("error")
def update_answer_to_redis(**kwargs): comment_id=add_comment(**kwargs) answer_id=kwargs["answer_id"] answer=get_answer_by_answer_id(answer_id) answer.commentcount+=1 update_answer(answer.id,commentcount=answer.commentcount) answer.save() return comment_id
def add_comment_to_redis(**kwargs): comment_id=add_comment(**kwargs) comment_id=add_comment(**kwargs) answer=get_answer_by_answer_id(kwargs["answer_id"]) answer.commentcount+=1 #import pdb;pdb.set_trace() update_answer(id=answer.id,commentcount=answer.commentcount) Answer.objects.filter(pk=answer.id).update(commentcount=answer.commentcount)
def cancel_vote_to_redis(user,answer_id,status,evaluation_id): evaluate_answer(answer_id,user.id,status,evaluation_id=evaluation_id,cancel=True) answer=get_answer_by_answer_id(answer_id) if status==1: answer.favorcount-=1 else: answer.opposecount-=1 update_answer(id=answer_id,favorcount=answer.favorcount,opposecount=answer.opposecount) #import pdb;pdb.set_trace() Answer.objects.filter(pk=answer_id).update(favorcount=answer.favorcount,opposecount=answer.opposecount) return True
def get_event(event_type,content_id,addtime,question_submit_count,answer_count): item={} if event_type==0: question=get_question_from_redis(content_id) item={'eventtype':event_type,'addtime':addtime,"data":question} question_submit_count+=1 elif event_type==1: answer=get_answer_by_answer_id(content_id) item={'eventtype':event_type,'addtime':addtime,"data":answer} answer_count +=1 elif event_type==2: follow=QustionFollow.objects.get(pk=content_id)#如何解决 question=question=get_question_from_redis(follow.question_id) follow.question=question item={'eventtype':event_type,'addtime':addtime,"data":follow} elif event_type==3: evalue=AnswerEvaluation.objects.get(pk=content_id) answer=get_answer_by_answer_id(evalue.answer_id) evalue.answer=answer item={'eventtype':event_type,'addtime':addtime,"data":evalue} return (item,question_submit_count,answer_count)
def get_event(event_type, content_id, addtime, question_submit_count, answer_count): item = {} if event_type == 0: question = get_question_from_redis(content_id) item = {'eventtype': event_type, 'addtime': addtime, "data": question} question_submit_count += 1 elif event_type == 1: answer = get_answer_by_answer_id(content_id) item = {'eventtype': event_type, 'addtime': addtime, "data": answer} answer_count += 1 elif event_type == 2: follow = QustionFollow.objects.get(pk=content_id) #如何解决 question = question = get_question_from_redis(follow.question_id) follow.question = question item = {'eventtype': event_type, 'addtime': addtime, "data": follow} elif event_type == 3: evalue = AnswerEvaluation.objects.get(pk=content_id) answer = get_answer_by_answer_id(evalue.answer_id) evalue.answer = answer item = {'eventtype': event_type, 'addtime': addtime, "data": evalue} return (item, question_submit_count, answer_count)
def add_comment(request): "添加评论" if request.method=="POST": answer_id=request.POST.get("answerid",None) question_id=request.POST.get("questionid",None) content=request.POST.get("content",None) touser_id=int(request.POST.get("touser",request.user.id)) answer=get_answer_by_answer_id(int(answer_id)) if answer_id and content and touser_id: addtime=datetime.now() comment_id=add_comment_to_redis(answer_id=answer_id,addtime=addtime,content=content,user=request.user,touser_id=touser_id) comment=Comment.commentobjects.create(id=comment_id,answer=answer,addtime=addtime,content=content,user=request.user,touser_id=touser_id) html_str=render_to_string("commentlist.html",{"comments_list":[comment]},context_instance=RequestContext(request)) return HttpResponse(html_str) return HttpResponse("error")
def submit_vote_to_redis(user,answer_id,status,evaluation_id=None): answer=get_answer_by_answer_id(answer_id) evaluate_answer(answer_id,user.id,status,evaluation_id=evaluation_id) is_exists=False #import pdb;pdb.set_trace() if evaluation_id and evaluation_id!=0: is_exists=True if status==1: if is_exists: answer.opposecount-=1 answer.favorcount+=1 else: if is_exists: answer.favorcount-=1 answer.opposecount+=1 update_answer(id=answer.id,favorcount=answer.favorcount,opposecount=answer.opposecount) Answer.objects.filter(pk=answer_id).update(favorcount=answer.favorcount,opposecount=answer.opposecount) return True
def vote_answer(request): "用户对问题投票+表示新增-表示update 用户字投票问题尚未解决" answer_id=request.POST["answerid"] op_type=request.POST.get("type","+") status=int(request.POST["status"]) evaluation_id=request.POST.get("evaluation_id",None) answer=get_answer_by_answer_id(int(answer_id)) if answer.user.id!=request.user.id: if op_type!="+": cancel_vote_to_redis(user=request.user,answer_id=answer,status=status,evaluation_id=evaluation_id) AnswerEvaluation.evaluationobjects.cancel_vote(user=request.user,answer=answer,status=status,evaluation_id=evaluation_id) else: submit_vote_to_redis(user=request.user,answer_id=answer_id,status=status,evaluation_id=evaluation_id) evaluation_id=AnswerEvaluation.evaluationobjects.submit_voter(user=request.user,answer=answer,status=status,evaluation_id=evaluation_id) return HttpResponse("{\"evaluation_id\":\""+str(evaluation_id)+"\"}") return HttpResponse("{\"status\":\"ok\"}") else: return HttpResponse("")