Ejemplo n.º 1
0
def ajax_reply(request, comment_id):
    """ajax请求回复评论"""
    reply_form = ReplyForm(request.POST)
    if reply_form.is_valid():
        reply_form.instance.comment_id = comment_id
        reply_form.instance.user_id = request.session['user']['id']
        reply_form.save()
        # 文章的评论数+1
        comment = Comment.objects.get(id=comment_id)
        Article.objects.filter(id=comment.article_id).update(
            comment_count=F('comment_count') + 1)
        # 创建回复通知
        article = Article.objects.get(id=comment.article_id)
        article_title = article.title
        if len(article_title) > 10:
            article_title = article_title[:7] + '...'
        comment_content = comment.content
        if len(comment_content) > 10:
            comment_content = comment_content[:7] + '...'
        reply_content = reply_form.instance.content
        if len(reply_content) > 10:
            reply_content = reply_content[:7] + '...'
        context = {
            'article_id': article.id,
            'article_title': article_title,
            'comment_id': comment.id,
            'comment_content': comment_content,
            'reply_content': reply_content
        }
        Notice.objects.create(
            sender_id=request.session['user']['id'],
            receiver_id=article.user.id,
            type=NoticeType.objects.get(name=NoticeType.REPLY_NOTICE),
            context=json.dumps(context))
    return HttpResponse('true')
Ejemplo n.º 2
0
 def post(self, request):
     rf = ReplyForm(request.POST)
     comment = Comment.objects.get(id=request.POST['comment'])
     user = User.objects.get(id=request.POST['author'])
     if user.username == request.user.username:
         if rf.is_valid():
             rf.save()
     return redirect('post_details', slug=comment.post.slug)
Ejemplo n.º 3
0
def message(request):
  errors = []
  if request.method == 'POST':
    form = ReplyForm(request.POST)
    if form.is_valid():
      cd = form.cleaned_data
      post, reply = Reply.insert_from_form(cd)
      return HttpResponseRedirect( post.get_abs_url())
    else:
      pass
  else:
    return render(request, 'message_error.html', {'errors': errors})
Ejemplo n.º 4
0
    def test_reply_form_is_not_valid_when_blank_data(self):
        reply_form = ReplyForm({})
        self.assertFalse(reply_form.is_valid())

        reply_form = CommentForm({
            "name": "Someone",
        })
        self.assertFalse(reply_form.is_valid())
        self.assertEqual(
            reply_form.errors, {
                'email': ['This field is required.'],
                'comment': ['This field is required.'],
            })
Ejemplo n.º 5
0
    def test_reply_form_is_valid_when_valid_data(self):
        comment = self.comment
        reply_form = ReplyForm({
            "name": "Someone",
            "email": "*****@*****.**",
            "comment": "I am a reply",
            "parent_comment": comment
        })
        self.assertTrue(reply_form.is_valid())
        reply = reply_form.save()

        self.assertEqual(reply.name, "Someone")
        self.assertEqual(reply.email, "*****@*****.**")
        self.assertEqual(reply.comment, "I am a reply")
Ejemplo n.º 6
0
def reply_new(request, question_pk):
    question = get_object_or_404(Question, pk=question_pk)
    if question.mentor.user != request.user:
        messages.warning(request, "담당멘토가 아닙니다")
        return redirect("blog:question_detail", question_pk)
    if request.method == "POST":
        form = ReplyForm(request.POST)
        if form.is_valid():
            reply = form.save(commit=False)
            reply.question = question
            reply.save()
            return redirect("blog:question_detail", question_pk)
    else:
        form = ReplyForm()
    return render(request, "blog/reply_form.html", {"form": form})
Ejemplo n.º 7
0
def ajax_make_comment_view(request, *args, **kwargs):
    data = request.extra_data
    res_dict = {'status':''}
    if request.method == 'GET':
        return HttpResponse('forbidden')
    elif request.method == 'POST':
        comment_form = ReplyForm(request.POST)
        if comment_form.is_valid():
            if not data.get('user_info').logined:
                make_comment(comment_form)
                res_dict['status'] = 'success'
            else:
                res_dict['status'] = u'you are author!'
        else:
            res_dict['status'] = comment_form.errors
        return HttpResponse(json.dumps(res_dict))
Ejemplo n.º 8
0
def reply_edit(request, question_pk, pk):
    question = get_object_or_404(Question, pk=question_pk)
    reply = get_object_or_404(Reply, pk=pk)

    if reply.question.mentor.user != request.user:
        messages.warning(request, "작성자가 아닙니다")
        return redirect("blog:question_detail", question_pk)

    if request.method == "POST":
        form = ReplyForm(instance=reply)
        if form.is_valid():
            form.save()
            messages.info(request, "답변이 수정되었습니다.")
            return redirect("blog:question_detail", question_pk)
    else:
        form = ReplyForm(instance=reply)
    return render(request, "blog/reply_form.html", {"form": form})
Ejemplo n.º 9
0
def make_comment_view(request, *args, **kwargs):
    data = request.extra_data
    if request.method == 'GET':
        raise Http404
    elif request.method == 'POST':
        if data.get('user_info').logined:
            return HttpResponse(u'你是作者,评论个毛!')
        comment_form = ReplyForm(request.POST)
        # 根据提交的数据是否合法重新渲染页面或者返回错误信息
        if comment_form.is_valid():
            make_comment(comment_form)
            return HttpResponseRedirect(comment_form.cleaned_data['fnext'])
        else:
            remind = {}  # 提示信息存储字典
            errors = ''
            # 提示信息,提示表单有误
            remind = {'info': '表单填写有误,请您确定填写正确哦 ^_^',
                      'button_name': '返回首页',
                      'url_to': settings.BLOG_ROOT_URL}
            return render_to_response('blog/login/remind.html', locals())
Ejemplo n.º 10
0
def reply(req,post_id):
	post = Post.objects.get(id=post_id)
	if req.method == "POST":
		urf = ReplyForm(req.POST)
		if urf.is_valid():
			urf = urf.save(commit=False)
			print req.user
			urf.user = req.user
			urf.post = post
			urf.save()
			return redirect('/blog/%s/' % post.id)
	else:
		urf = ReplyForm()
	return render(req, 'reply.html',{'urf':urf})
Ejemplo n.º 11
0
def articles_view(request, *args, **kwargs):
    """read articles inclued articles reader and
    comment post function,if articles not found ,it raise a 404 error"""
    data = request.extra_data
    a_post = APost(int(kwargs.get('article_id', 0)))
    if request.method == 'GET':
        if not a_post.exist:
            raise Http404
        # 检查文章状态是否为已发布
        if a_post.post['status'].id == 2:
            return (
                render_to_response(
                    'blog/read.html',
                    locals(),
                    context_instance=RequestContext(request))
            )
        elif a_post.post['status'].id == 1 and logined(request):
            return (
                render_to_response(
                    'blog/read.html',
                    locals(),
                    context_instance=RequestContext(request))
            )
        else:
            raise Http404
    elif request.method == 'POST':
        if user_info.logined:
            return HttpResponse(u'你是作者,评论个毛!')
        else:
            comment_form = ReplyForm(request.POST)
         # 根据提交的数据是否合法重新渲染页面或者返回错误信息
        if not comment_form.is_valid():
            return render_to_response('blog/read.html',
                                      locals(),
                                      context_instance=RequestContext(request))
        else:
            return HttpResponseRedirect(request.path)