示例#1
0
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
示例#2
0
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
示例#3
0
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("")
示例#4
0
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")
示例#5
0
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
示例#6
0
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)
示例#7
0
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
示例#8
0
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)
示例#9
0
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)
示例#10
0
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")
示例#11
0
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
示例#12
0
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("")