Ejemplo n.º 1
0
def topic(request, topic_id):
    try:
        topic_id_int = int(topic_id)
    except ValueError:
        raise Http404()

    if request.method == 'POST':
        topic = get_object_or_404(Topic, pk=topic_id_int)
        user = request.user
        form = CommentForm(request.POST)
        if form.is_valid():
            new_text_comment = form.cleaned_data['text']
        else:
            new_text_comment = 'not valid comment!'
        new_comment = Comment(text=new_text_comment,  
                             pub_date=timezone.now(), 
                             topic=topic, 
                             creator=user)
        new_comment.save()

    topic = get_object_or_404(Topic, pk=topic_id_int)
    form = CommentForm()
    return render_to_response('forum/topic.html', 
                              {'topic': topic, 'form': form}, 
                              context_instance=RequestContext(request))
Ejemplo n.º 2
0
def comment(request, thread_id):
    #if not request.user.is_authenticated():
    #    return redirect('/login/')
    thread = Thread.objects.get(id = thread_id)
    c = Comment(poster = request.user, content = request.POST['content'], thread = thread)
    c.save()
    #return?
    return render(request,'thread.html',{'thread':thread})
Ejemplo n.º 3
0
 def create_comment(self, author, post):
     new_comment = Comment(
         content = self.cleaned_data.get('content'),
         post = post,
         author = author,
         created = datetime.datetime.now(),
     )
     new_comment.save()
     return new_comment
Ejemplo n.º 4
0
    def post(self, post):
        try:
            comment = Comment(text=g.data['text'],
                              created_at=datetime.now(),
                              post=post).save()
        except DatabaseError:
            abort(400)

        return make_response(jsonify(comment.json()), 201)
 def create_comment(post, content, parent):
     com = Comment(
         post=post,
         parent=parent,
         owner=random.choice(people),
         content="<div>" + content + "</div>",
     )
     com.save()
     return com
Ejemplo n.º 6
0
def comment(request, thread_id):
    #if not request.user.is_authenticated():
    #    return redirect('/login/')
    thread = Thread.objects.get(id=thread_id)
    c = Comment(poster=request.user,
                content=request.POST['content'],
                thread=thread)
    c.save()
    #return?
    return render(request, 'thread.html', {'thread': thread})
Ejemplo n.º 7
0
def comment(request, aid):
	a = Solutions.objects.get(pk=aid)
	if request.method == "POST":
		text = request.POST.get('comment')
		comment = Comment(answer=a, comment=text, author=request.user)
		mp.track(comment.comment, "New comment")
		comment.save()
		return redirect("/question/{}/".format(a.question.id))

	reply = Comment.objects.filter(answer = a)
	return render(request, 'forum/question.html', {"answer":a, "reply" : reply})
Ejemplo n.º 8
0
    def test_comment_text_more_then_can(self):
        text_for_commen = 'eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee' \
                         'eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee' \
                         'eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee' \
                         'eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee' \
                         'eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee' \
                         'eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee'

        comment = Comment(text=text_for_commen, topic=Topic(text='t'))

        self.assertEqual(comment.__str__(), text_for_commen[:50] + '...')
Ejemplo n.º 9
0
def comment(request, pk):
    post = get_object_or_404(Post, pk=pk)
    if request.method == 'POST':
        comment = Comment(post=post)
        comment_form = CommentForm(request.POST, instance=comment)
        if comment_form.is_valid():
            comment = comment_form.save(commit=False)
            comment.creator = request.user
            comment.save()
            return redirect('forum:thread', pk=post.thread_id)
    else:
        comment_form = CommentForm()
        context_dict = {'post': post, 'form': comment_form}
        return render(request, 'forum/add_comment.html', context_dict)
Ejemplo n.º 10
0
def appendComments(request):
    if request.method == 'GET':
        subject_id = request.GET.get('subject')
        content = request.GET.get('content')

        subject = get_object_or_404(Subject, pk=subject_id)
        new_comment = Comment(subject=subject,
                              content=content,
                              alumni=request.user)
        new_comment.save()

        if new_comment:
            data = {'ok': True}
        return JsonResponse(data)
Ejemplo n.º 11
0
def makecomment(request):
    if request.method == 'POST':
        comment = request.POST.get("comment", "")
        post_id = request.POST.get("post_id", "")
        comment_id = request.POST.get("comment_id", "")

        user = LoginUser.objects.get(username=request.user)
        p = Post.objects.get(pk=post_id)
        p.responce_times += 1
        p.last_response = user

        if comment_id:
            p_comment = Comment.objects.get(pk=comment_id)
            c = Comment(post=p,
                        author=user,
                        comment_parent=p_comment,
                        content=comment)
            c.save()
        else:
            c = Comment(post=p, author=user, content=comment)
            c.save()
        p.save()
        user.levels += 3  #评论一次积分加 3
        user.save()

    return HttpResponse("评论成功")
Ejemplo n.º 12
0
def comment_post(request, post_id):
    '''We should assume that comment_data is valid, if it comes to this step'''
    response_data = {
        "allowed": 1,
        "success": 1,
        "message": '',
    }
    post_to_comment = Post.objects.get(id=post_id)
    if post_to_comment is not None:
        comment = Comment(content_object=post_to_comment, author=request.user, content=request.POST['comment_data'])
        comment.save()
        response_data['message'] = 'Comment has been added to post %s by user %s' % (post_id, request.user.username)
        response_data['success'] = 1

    data = simplejson.dumps(response_data)
    return HttpResponse(data, mimetype='application/json')
Ejemplo n.º 13
0
 def add_comment_to_db(self, request_person_id, reply_person_id, comment,
                       is_public, is_anonymous):
     Comment(from_user_id=request_person_id,
             to_user_id=reply_person_id,
             text=comment,
             is_public=is_public,
             is_anonymous=is_anonymous).save()
Ejemplo n.º 14
0
 def add_comment(self, tid, comment):
     for i in comment:
         if not i:
             continue
         cm = Comment()
         cm.thread_id = tid
         cm.content = i
         cm.create_user = ramdom_user()
         cm.dislike = 0
         like = random.choice(range(0, 12))
         if like > 6:
             cm.like = 0
         else:
             cm.like = like
         cm.save()
     pass
Ejemplo n.º 15
0
def add_comment(request, course_id):
    if request.method == 'POST':
        content = request.POST['review_text']
        difficulty = request.POST['difficulty']
        workload = request.POST['workload']
        professor = request.POST['professor']
        overall = request.POST['overall']
        new_comment = Comment(user=request.user,
                              content=content,
                              overall_score=overall,
                              difficulty_score=difficulty,
                              workload_score=workload,
                              professor_score=professor,
                              course=Course.objects.get(id=course_id),
                              time=datetime.datetime.now())
        new_comment.save()
    return HttpResponseRedirect("/course/" + str(course_id))
Ejemplo n.º 16
0
def leech_category(session, category, category_data):
    response = session.get(FORUM_THREADS_URL, params=FORUM_THREADS_PARAMS(category_data['path']))
    json_string = '\n'.join(response.text.split('\n')[1:])
    threads_data = json.loads(json_string)
    for thread_data in threads_data:
        # Threads
        try:
            author = DogeUser.objects.get(login=thread_data['user']['login'])
        except:
            continue
        thread = Thread(
            title=thread_data['name'],
            category=category,
            author=author,
            created=thread_data['date'],
        )
        thread.save()
        response = session.get(FORUM_POST_URL, params=FORUM_POST_PARAMS(thread_data['path']))
        json_string = '\n'.join(response.text.split('\n')[1:])
        posts_data = json.loads(json_string)
        for post_data in posts_data:
            # Posts
            try:
                author = DogeUser.objects.get(login=post_data['user']['login'])
            except:
                continue
            post = Post(
                thread=thread,
                author=author,
                content=post_data['content'],
                created=post_data['date']
            )
            post.save()
            for comment_data in post_data['comments']:
                # Comments
                try:
                    author = DogeUser.objects.get(login=comment_data['user']['login'])
                except:
                    continue
                comment = Comment(
                    post=post,
                    author=author,
                    content=comment_data['content'],
                    created=comment_data['date']
                )
                comment.save()
Ejemplo n.º 17
0
def postDetail(request, column_id, post_id):
    if request.method == 'GET':
        column = get_object_or_404(Column, pk=column_id)
        post = get_object_or_404(Post, pk=post_id)
        comments_list = Comment.objects.filter(post=post)
        context = {
            'column': column,
            'post': post,
            'comments_list': comments_list,
            'comments_num': comments_list.all().count()
        }
        return render(request, "PostPage.html", context)
    else:
        post = Post.objects.get(id=post_id)
        author = User.objects.get(pk=request.user.id)
        errors = []
        content = request.POST.get("content", "")
        comment = Comment()
        comment.post = post
        comment.author = author
        comment.content = content
        comment.save()
        return HttpResponseRedirect(
            reverse_lazy('forum:post_detail',
                         kwargs={
                             'column_id': column_id,
                             'post_id': post_id
                         }))
Ejemplo n.º 18
0
def forum_details(request, forum_id):
    if request.user.is_authenticated:
        form = comment_box()
        mod = forum_text.objects.all()
        print('fourm text objects', mod)
        pic = User.objects.all()
        num = deepcopy(forum_id)
        mode = Comment.objects.all()
        if request.method == 'POST':
            if request.POST.get('desc'):
                model = Comment()
                model.user = request.user
                temp = forum_text.objects.get(id=forum_id)
                model.forum = temp
                model.desc = request.POST.get('desc')
                model.save()
                return HttpResponseRedirect(
                    reverse(forum_details, args=(forum_id, )))
            else:
                return render(request, 'index.html', {})
        else:
            return render(
                request, 'forum_details.html', {
                    'forum_id': forum_id,
                    'form': form,
                    'model': mod,
                    'pic': pic,
                    'mode': mode
                })
    else:
        return render(request, 'login.html', {})
Ejemplo n.º 19
0
def test_get_post(client, db):
    create_posts()
    post = Post.query.first()
    for i in range(5):
        Comment(text=f'test comment {i}', post=post, created_at=datetime.now())

    response = client.get("/api/v1/sections/1/posts/1")
    assert response.status_code == 200
    assert len(json.loads(response.data)['comments']) == 5
Ejemplo n.º 20
0
def get_comment(request, pk):
    if request.method == 'POST':
        form = CommentForm(request.POST)
        if form.is_valid():
            creator = form.cleaned_data['name']
            text = form.cleaned_data['comment']
            thread = Thread.objects.get(pk=pk)
            Comment(text=text, thread=thread, creator=creator).save()
            messages.success(request, 'Thanks for commenting, dude')
    return HttpResponseRedirect(request.META.get('HTTP_REFERER', '/'))
Ejemplo n.º 21
0
def forum_detail(request, pk):
    post = Post.objects.get(pk=pk)

    form = CommentForm()
    if request.method == 'POST':
        form = CommentForm(request.POST)
        if form.is_valid():
            comment = Comment(author=form.cleaned_data["author"],
                              body=form.cleaned_data["body"],
                              post=post)
            comment.save()

    comments = Comment.objects.filter(post=post)
    context = {
        "post": post,
        "comments": comments,
        "form": form,
    }
    return render(request, "forum_detail.html", context)
Ejemplo n.º 22
0
def comment(req):
    if req.method == 'POST':
        ans_id = req.POST['ans_id']
        comment = req.POST['comment']
        answer = get_object_or_404(Answer, pk=ans_id)
        comm = Comment()
        comm.comment = comment
        comm.comment_by = req.user
        comm.ans = answer
        comm.save()
    return redirect('home')
Ejemplo n.º 23
0
def CommentView(request, pk):
    if request.method == 'POST':
        post = get_object_or_404(Post, pk=pk)
        post.views -= 1
        post.save()
        text = request.POST.get('text')
        if (text == ''):
            return HttpResponseRedirect(reverse('forum:single', args=(pk, )))
        comment = Comment()
        comment.post = post
        comment.text = text
        comment.author = get_object_or_404(Profile, user=request.user)
        comment.number = str(comment.post.comment_set.all().count() + 1)
        comment.save()
    return HttpResponseRedirect(reverse('forum:single', args=(pk, )))
Ejemplo n.º 24
0
def add(request, post_id):
    language = get_language(request)
    user = get_user(request)
    if user is None:
        redirect('/login')
    try:
        post = Post.objects.get(id=post_id)
        if post.id != post_id:
            return redirect('/')
    except Post.DoesNotExist:
        return redirect('')

    error = None
    body = None
    if request.method == 'POST':
        body = request.POST['body']
        if not body:
            if language == 'pl':
                error = 'Musisz podac treść komentarza.'
            else:
                error = 'Comment body is required.'
        else:
            comment = Comment(post=post, body=body, author=user)
            comment.save()
            return redirect('/')

    errors = []
    if error is not None:
        errors.append(error)
    template = loader.get_template('posts/comments/add.html')
    context = {
        'post': post,
        'user': user,
        'errors': errors,
        'body': body,
        'language': language
    }
    return HttpResponse(template.render(context, request))
Ejemplo n.º 25
0
def forum_content(request, id):
    try:
        post = Post.objects.get(id=int(id))
    except:
        HttpResponseRedirect('/forum_index')
    delete_id = None
    delete_id = request.POST.get('delete_id', '')
    try:
        delcomment = Comment.objects.get(id=int(delete_id))
        delcomment.post.save()
        delcomment.delete()
    except Exception:
        pass
    if request.user.is_authenticated():
        if request.method == 'POST':
            form = CommentForm(request.POST)
            if form.is_valid():
                cd = form.cleaned_data
                comment = Comment(content=cd['comment'],
                                  post=Post.objects.get(id=int(id)),
                                  replier=request.user)
                comment.save()
                comment.post.save()
            else:
                form = CommentForm()
            print(4)
        commentlist = post.p_comment.all()
        return render(request, 'forum_content_after_login.html', {
            'post': post,
            'commentlist': commentlist
        })
    else:
        commentlist = post.p_comment.all()
        return render(request, 'forum_content.html', {
            'post': post,
            'commentlist': commentlist
        })
Ejemplo n.º 26
0
    def _on_publish_comment_sql(self, post_id, post_type, content, user):
        """
        发表评论时的数据库处理程序,sql后端
         :param post_id: 被评论的贴子ID
        :param post_type: 评论类型,0为主题,1为评论
        :param content: 内容
        :param user: 已验证的用户对象
        :return: 成功返回真,失败返回假
        """

        assert post_id > 0 and post_type in [
            0, 1
        ] and content != '' and isinstance(user, User)

        if post_type == 0:
            # 评论对象为主题的情形
            topic = Topic.objects.filter(id=post_id).first()

            if not topic:
                return False

            new_comment = Comment(content=content,
                                  user=user,
                                  tid=topic.id,
                                  time=datetime.datetime.now)
            new_comment.save()

            result = topic.update(inc__comment_num=1)
        else:
            # 评论对象为评论的情形
            comment = Comment.objects.filter(id=post_id).first()

            if not comment:
                return False

            new_comment = Comment(content=content,
                                  user=user,
                                  type=1,
                                  cid=comment.id,
                                  time=datetime.datetime.now)
            new_comment.save()

            result = comment.update(inc__comment_num=1)

        return result is not None
Ejemplo n.º 27
0
def generate_fake_comments(count=1000):
    seed()
    user_count = db.session.query(func.count(User.id)).scalar()
    topic_count = db.session.query(func.count(Topic.id)).scalar()
    for i in range(count):
        u = User.query.offset(randint(0, user_count - 1)).first()
        t = Topic.query.offset(randint(0, topic_count - 1)).first()
        now = forgery_py.date.date(True)
        c = Comment(body=forgery_py.lorem_ipsum.sentences(randint(10, 20)),
                    created_at=now,
                    updated_at=now,
                    author=u,
                    topic=t)
        db.session.add(c)
        t.interest += 1
        db.session.add(t)
    db.session.commit()
Ejemplo n.º 28
0
def comment(request, post_id_string, parent_id_string):
    parent_id = int(parent_id_string)
    post_id = int(post_id_string)
    if parent_id < 0:
        # posting parent comments
        if request.method == "POST":
            if not request.user.is_authenticated:
                return HttpResponse("You need to be logged in!")
            post = json.loads(request.body)
            c = Comment(body=post['body'],
                        owner=Person.objects.get(user=request.user),
                        post=Post.objects.get(pk=post_id))
            c.save()
            return HttpResponse("")
        # getting all comments
        if request.method == "GET":
            comments = [{"postID": post_id,
                         "commentID": x.pk,
                         "body": x.body,
                         "children": x.get_children()}
                        for x in Comment.objects.filter(
                                post__pk=post_id).filter(parent_comment=None)]
            return HttpResponse(json.dumps(comments))
        return HttpResponse("This is a parent comment")
    # posting sub comments
    if request.method == "POST":
        if request.user.is_authenticated:
            post = json.loads(request.body)
            c = Comment(body=post['body'],
                        owner=Person.objects.get(user=request.user),
                        parent_comment=Comment.objects.get(pk=parent_id),
                        post=Post.objects.get(pk=post_id))
            c.save()
            return HttpResponse("")
        else:
            return HttpResponse("You need to be logged in!")
    # for testing purposes, users should never access this site
    return HttpResponse("parent comment id: {}, post id: {}".format(
        parent_id, post_id))
Ejemplo n.º 29
0
def article(request,slug):
    context = {} 
    article = Article.objects.get(id=slug)
    if request.method == 'POST':
        print(request.POST)
        content = request.POST.get('content','')
        Comment(user=request.user,article_id=slug,content=content).save()
    
    if not request.session.get('article_read_list'):
        request.session['article_read_list'] = []

    if slug not in request.session['article_read_list']:
        article.read_num +=1
        article.save()
        request.session['article_read_list'].append(slug)


    comments = Comment.objects.filter(article_id=slug)
    context['article'] = article
    context['comments'] = comments
    return render(request,'forum/article.html',context) 
Ejemplo n.º 30
0
def forum_details(request, forum_id):
    if request.user.is_authenticated:
        form = comment_box()
        mod = forum_text.objects.all()
        mod1 = forum_text.objects.get(id=forum_id)
        mod1.views = mod1.views + 1
        mod1.save()
        pic = User.objects.get(username=mod1.user.username)
        num = deepcopy(forum_id)
        mode = Comment.objects.all()
        if request.method == 'POST':
            if request.POST.get('desc'):
                model = Comment()
                model.user = request.user
                temp = forum_text.objects.get(id=forum_id)
                model.forum = temp
                model.desc = request.POST.get('desc')
                model.save()
                return HttpResponseRedirect(
                    reverse(forum_details, args=(forum_id, )))
            else:
                messages.error(request, "User details not found,please login")
                return HttpResponseRedirectreverse(forum_details,
                                                   args=(post_id, ))
        else:
            try:
                if pic.startup is not None:
                    pic = pic.startup.profile_pic
            except:
                pic = pic.mentor.profile_pic
            return render(
                request, 'forum_details.html', {
                    'forum_id': forum_id,
                    'form': form,
                    'model': mod,
                    'pic': pic,
                    'mode': mode
                })
    else:
        return render(request, 'login.html', {})
Ejemplo n.º 31
0
def makecomment(request):
    if request.method == 'POST':
        comment = request.POST.get("comment","")
        post_id = request.POST.get("post_id","")
        comment_id = request.POST.get("comment_id","")

        user = LoginUser.objects.get(username=request.user)
        p = Post.objects.get(pk=post_id)
        p.responce_times += 1
        p.last_response = user
      
        if comment_id:
            p_comment = Comment.objects.get(pk=comment_id)
            c = Comment(post=p,author=user,comment_parent=p_comment,content=comment)
            c.save()
        else:
            c = Comment(post=p,author=user,content=comment)
            c.save()
        p.save()
        user.levels += 3	#评论一次积分加 3
        user.save()
        
    return HttpResponse("评论成功")
def gen_com(name, json_path):
    f = open("demo_data/authors.json", "r")

    data = json.loads(f.read())

    try:
        c = Community.objects.get(name=name)
        c._channels.all().delete()
        c.post_set.all().delete()
        c.people.filter(user=None).delete()
    except ObjectDoesNotExist:
        c = Community(name=name)
        c.save()
        pass

    people = []
    for a in data:
        p = Person(
            username=a,
            community=c,
            bio=
            "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim blandit volutpat maecenas volutpat. Diam vulputate ut pharetra sit. Odio ut sem nulla pharetra diam sit amet. Placerat duis ultricies lacus sed turpis tincidunt. Amet facilisis magna etiam tempor orci eu lobortis elementum nibh. Nec dui nunc mattis enim ut tellus. Elit pellentesque habitant morbi tristique. Dolor morbi non arcu risus quis varius quam. ",
        )
        p.save()
        people.append(p)

    f.close()
    f = open(json_path, "r")

    data = json.loads(f.read())

    def create_comment(post, content, parent):
        com = Comment(
            post=post,
            parent=parent,
            owner=random.choice(people),
            content="<div>" + content + "</div>",
        )
        com.save()
        return com

    for p in data:
        ch = Channel.objects.get_or_create(name=p["channel"],
                                           community=c,
                                           emoji="T")[0]
        po = Post(
            channel=ch,
            owner=random.choice(people),
            community=c,
            title=p["title"],
            content="<div>" + p["content"] + "</div>",
        )
        po.save()

        for co in p["children"]:
            com = Comment(
                post=po,
                owner=random.choice(people),
                content="<div>" + co["content"] + "</div>",
            )
            com.save()

            if "children" in co:
                for child in co["children"]:
                    com1 = create_comment(po, child["content"], com)
                    if "children" in child:
                        for child1 in child["children"]:
                            com2 = create_comment(po, child1["content"], com1)
                            if "children" in child1:
                                for child2 in child1["children"]:
                                    com3 = create_comment(
                                        po, child2["content"], com2)
                                    if "children" in child2:
                                        for child3 in child2["children"]:
                                            com4 = create_comment(
                                                po, child3["content"], com3)

        upvotes = random.randint(4, 25)
        for u in range(upvotes):
            po.upvotes.add(random.choice(people))
Ejemplo n.º 33
0
 def process_data(self, text='', parent=None):
     comment = Comment(author=self.user, parent=parent, body=autolink(strip_tags(text)))
     comment.save()
     self.node = comment
Ejemplo n.º 34
0
 def process_data(self, text='', parent=None):
     comment = Comment(author=self.user, parent=parent, body=text)
     comment.save()
     self.node = comment
Ejemplo n.º 35
0
 def test_topic(self):
     topic = Topic(text='dd', id=1)
     comment = Comment(topic=topic, text='fd')
     self.assertEqual(comment.topic, topic)
     topic.delete()
     self.assertNotEqual(comment, None)
Ejemplo n.º 36
0
 def save(self, thread, user):
     comment = Comment(author=user, thread=thread, content=self.cleaned_data['content'])
     comment.save()
Ejemplo n.º 37
0
 def save(self, user):
     thread = Thread(title=self.cleaned_data['title'], last_comment_date=datetime.now())
     thread.save()
     comment = Comment(author=user, thread=thread, content=self.cleaned_data['content'])
     comment.save()
Ejemplo n.º 38
0
 def process_data(self, text='', parent=None):
     comment = Comment(author=self.user, parent=parent, body=text)
     comment.save()
     self.node = comment
Ejemplo n.º 39
0
    def test_return(self):
        comment = Comment(text='ddd', topic=Topic(text='t'))

        self.assertEqual(comment.__str__(), 'ddd')