示例#1
0
文件: reply.py 项目: wbbim/collipa
 def post(self, reply_id):
     reply = Reply.get(id=reply_id)
     if not reply or (reply.author != self.current_user and not self.current_user.is_admin):
         return self.redirect_next_url()
     user = self.current_user
     form = ReplyForm(self.request.arguments)
     if form.validate():
         reply = form.save(user=user, topic=reply.topic, reply=reply)
         reply.put_notifier()
         result = {'status': 'success', 'message': '评论修改成功',
                   'reply_url': reply.url}
         return self.send_result(result, reply.url)
     data = dict(form=form, reply=reply)
     return self.send_result_and_render(form.result, "reply/edit.html", data)
示例#2
0
    def post(self):
        page = int(self.get_argument('page', 1))
        category = self.get_argument('category', 'index')
        topic_id = int(self.get_argument('topic_id', 0))
        topic = Topic.get(id=topic_id)
        if not topic_id:
            result = {'status': 'error', 'message': '无此主题,不能创建评论'}
            if self.is_ajax:
                return self.write(result)
            else:
                self.flash_message(**result)
                return self.redirect_next_url()
        user = self.current_user
        form = ReplyForm(self.request.arguments)
        if form.validate():
            reply = form.save(user=user, topic=topic)
            reply.put_notifier()
            result = {
                'status': 'success',
                'message': '评论创建成功',
                'content': reply.content,
                'name': reply.author.name,
                'nickname': reply.author.nickname,
                'author_avatar': reply.author.get_avatar(size=48),
                'author_url': reply.author.url,
                'author_name': reply.author.name,
                'author_nickname': reply.author.nickname,
                'reply_url': reply.url,
                'created': reply.created,
                'id': reply.id,
                'floor': reply.floor
            }
            if self.is_ajax:
                return self.write(result)
            self.flash_message(**result)
            return self.redirect(topic.url)

        reply_count = topic.reply_count
        page_count = (reply_count + config.reply_paged -
                      1) // config.reply_paged
        replies = topic.get_replies(page=page, category=category)
        data = dict(form=form,
                    topic=topic,
                    replies=replies,
                    category=category,
                    page=page,
                    page_count=page_count,
                    url=topic.url)
        return self.send_result_and_render(form.result, "topic/index.html",
                                           data)
示例#3
0
文件: topic.py 项目: wbbim/collipa
 def get(self, topic_id):
     topic_id = int(topic_id)
     page = force_int(self.get_argument('page', 0), 0)
     topic = Topic.get(id=topic_id)
     if not topic:
         raise tornado.web.HTTPError(404)
     category = self.get_argument('category', None)
     if not category:
         category = 'all'
     if category == 'all':
         reply_count = topic.reply_count
         url = topic.url
     elif category == 'hot':
         reply_count = orm.count(
             topic.get_replies(page=None, category=category))
         url = topic.url + '?category=hot'
     page_count = (reply_count + config.reply_paged -
                   1) // config.reply_paged
     if page == 0:
         page = page_count
     replies = topic.get_replies(page=page, category=category)
     form = ReplyForm()
     return self.render("topic/index.html",
                        topic=topic,
                        replies=replies,
                        form=form,
                        category=category,
                        page=page,
                        page_count=page_count,
                        url=url)
示例#4
0
 def get(self, reply_id):
     reply = Reply.get(id=reply_id)
     if not reply or (reply.author != self.current_user
                      and not self.current_user.is_admin):
         return self.redirect_next_url()
     form = ReplyForm(content=reply.content)
     return self.render("reply/edit.html", form=form, reply=reply)
示例#5
0
 def post(self, reply_id):
     reply = Reply.get(id=reply_id)
     if not reply or (reply.author != self.current_user
                      and not self.current_user.is_admin):
         return self.redirect_next_url()
     user = self.current_user
     form = ReplyForm(self.request.arguments)
     if form.validate():
         reply = form.save(user=user, topic=reply.topic, reply=reply)
         reply.put_notifier()
         result = {
             'status': 'success',
             'message': '评论修改成功',
             'reply_url': reply.url
         }
         return self.send_result(result, reply.url)
     data = dict(form=form, reply=reply)
     return self.send_result_and_render(form.result, "reply/edit.html",
                                        data)
示例#6
0
文件: reply.py 项目: wbbim/collipa
    def post(self):
        page = int(self.get_argument('page', 1))
        category = self.get_argument('category', 'index')
        topic_id = int(self.get_argument('topic_id', 0))
        topic = Topic.get(id=topic_id)
        if not topic_id:
            result = {'status': 'error', 'message': '无此主题,不能创建评论'}
            if self.is_ajax:
                return self.write(result)
            else:
                self.flash_message(**result)
                return self.redirect_next_url()
        user = self.current_user
        form = ReplyForm(self.request.arguments)
        if form.validate():
            reply = form.save(user=user, topic=topic)
            reply.put_notifier()
            result = {'status': 'success', 'message': '评论创建成功',
                      'content': reply.content, 'name': reply.author.name,
                      'nickname': reply.author.nickname, 'author_avatar':
                      reply.author.get_avatar(size=48), 'author_url':
                      reply.author.url, 'author_name': reply.author.name,
                      'author_nickname': reply.author.nickname,
                      'reply_url': reply.url, 'created': reply.created,
                      'id': reply.id, 'floor': reply.floor}
            if self.is_ajax:
                return self.write(result)
            self.flash_message(**result)
            return self.redirect(topic.url)

        reply_count = topic.reply_count
        page_count = (reply_count + config.reply_paged - 1) // config.reply_paged
        replies = topic.get_replies(page=page, category=category)
        data = dict(form=form, topic=topic, replies=replies, category=category, page=page, page_count=page_count,
                    url=topic.url)
        return self.send_result_and_render(form.result, "topic/index.html", data)