예제 #1
0
    def change_comment(self, request, id, action):
        comment = Comment.query.get(id)
        if action in ('hide', 'restore'):
            message = {
                'hide': _(u'Do you really want to hide the comment?'),
                'restore': _(u'Do you really want to restore the comment?')
            }
            if confirm_action(request,
                              message[action],
                              'news/edit_comment',
                              id=id,
                              action=action):
                comment.deleted = action == 'hide'
                db.session.commit()
                request.flash(_(u'The comment has been hidden') if \
                    action == 'hide' else _(u'The comment has been restored'))
                return redirect_to(comment)
            return redirect_to(comment.article)

        # action == 'edit'
        form = EditCommentForm(request.form)
        if form.validate_on_submit():
            if form.validate():
                comment.text = form.text.data
                db.session.commit()
                request.flash(_(u'The comment was saved'), True)
                return redirect_to(comment)
        else:
            form.text.data = comment.text
        return {
            'comment': comment,
            'form': form,
        }
예제 #2
0
    def detail(self, request, slug):
        article = Article.query.filter_by(slug=slug).one()
        if article.hidden:
            # TODO: ACL Check
            request.flash(_(u"This article is hidden"), False)

        if article.comments_enabled:
            form = EditCommentForm(request.form)
            if form.validate_on_submit():
                if form.data.get("comment_id", None):
                    comment = Comment.query.get(form.comment_id.data)
                    comment.text = form.text.data
                    request.flash(_(u"The comment was successfully edited"), True)
                else:
                    comment = Comment(text=form.text.data, author=request.user)
                    article.comments.append(comment)
                    Subscription.new(comment, "news.comment.new")
                    request.flash(_(u"Your comment was successfully created"), True)
                db.session.commit()
                return redirect_to(comment)
        else:
            form = EditCommentForm()

        # increase counters
        article.touch()

        comments = list(article.comments.options(db.joinedload("author")))
        Subscription.accessed(request.user, object=article, subject=article)

        return {"article": article, "comments": comments, "form": form}
예제 #3
0
    def detail(self, request, slug):
        article = Article.query.filter_by(slug=slug).one()
        if article.hidden:
            #TODO: ACL Check
            request.flash(_(u'This article is hidden'), False)

        if article.comments_enabled:
            form = EditCommentForm(request.form)
            if form.validate_on_submit():
                if form.data.get('comment_id', None):
                    comment = Comment.query.get(form.comment_id.data)
                    comment.text = form.text.data
                    request.flash(_(u'The comment was successfully edited'),
                                  True)
                else:
                    comment = Comment(text=form.text.data, author=request.user)
                    article.comments.append(comment)
                    Subscription.new(comment, 'news.comment.new')
                    request.flash(_(u'Your comment was successfully created'),
                                  True)
                db.session.commit()
                return redirect_to(comment)
        else:
            form = EditCommentForm()

        # increase counters
        article.touch()

        comments = list(article.comments.options(db.joinedload('author')))
        Subscription.accessed(request.user, object=article, subject=article)

        return {'article': article, 'comments': comments, 'form': form}
예제 #4
0
    def change_comment(self, request, id, action):
        comment = Comment.query.get(id)
        if action in ("hide", "restore"):
            message = {
                "hide": _(u"Do you really want to hide the comment?"),
                "restore": _(u"Do you really want to restore the comment?"),
            }
            if confirm_action(request, message[action], "news/edit_comment", id=id, action=action):
                comment.deleted = action == "hide"
                db.session.commit()
                request.flash(
                    _(u"The comment has been hidden") if action == "hide" else _(u"The comment has been restored")
                )
                return redirect_to(comment)
            return redirect_to(comment.article)

        # action == 'edit'
        form = EditCommentForm(request.form)
        if form.validate_on_submit():
            if form.validate():
                comment.text = form.text.data
                db.session.commit()
                request.flash(_(u"The comment was saved"), True)
                return redirect_to(comment)
        else:
            form.text.data = comment.text
        return {"comment": comment, "form": form}