Exemplo n.º 1
0
 def get(self, topic_id, *args, **kwargs):
     try:
         topic = PostTopic.get(PostTopic.str == topic_id)
     except PostTopic.DoesNotExist:
         self.redirect("/static/404.html")
         return
     current_page = get_cleaned_query_data(self, [
         'page',
     ], blank=True)['page']
     if current_page:
         current_page = int(current_page)
         if current_page < 1:
             self.redirect("/static/404.html")
             return
         posts, page_number_limit = Post.list_by_topic(
             topic, page_number=current_page)
     else:
         current_page = 1
         posts, page_number_limit = Post.list_by_topic(topic)
     top_posts, _ = Post.list_top()
     pages = get_page_nav(current_page, page_number_limit,
                          config.default_page_limit)
     self.render('index/index.html',
                 posts=posts,
                 top_posts=top_posts,
                 topic_category_cache=topic_category_cache,
                 hot_post_cache=hot_post_cache,
                 systatus=system_status_cache,
                 current_topic=topic,
                 pages=pages,
                 pages_prefix_url='/topic/' + topic.str + '?page=')
Exemplo n.º 2
0
    def post(self, *args, **kwargs):
        post_data = get_cleaned_post_data(self, ['post', 'title', 'content', 'topic'])
        try:
            post = Post.get(Post.id == post_data['post'], Post.is_delete == False)
        except Post.DoesNotExist:
            self.write(json_result(1, '请选择正确主题'))
            return

        if not post.check_auth(self.current_user):
            self.redirect404_json()
            return

        try:
            topic = PostTopic.get(PostTopic.str == post_data['topic'])
        except PostTopic.DoesNotExist:
            self.write(json_result(1, '请选择正确主题'))
            return

        post.topic = topic
        post.title = post_data['title']
        post.content = post_data['content']
        post.save()

        # 添加通知, 通知给其他关注的用户
        Notification.new_post(post)
        self.write(json_result(0, {'post_id': post.id}))
Exemplo n.º 3
0
def get_topic_index_info(topic_id, current_page, page_limit=config.default_page_limit):
    try:
        topic = PostTopic.get(PostTopic.str == topic_id)
    except PostTopic.DoesNotExist:
        return None
    current_page = get_page_number(current_page)
    posts, page_number_limit = Post.list_by_topic(topic, page_number=current_page)
    top_posts, _ = Post.list_top()
    pages = get_page_nav(current_page, page_number_limit, page_limit)
    return topic, posts, top_posts, pages
Exemplo n.º 4
0
def get_topic_index_info(topic_id,
                         current_page,
                         page_limit=config.default_page_limit):
    try:
        topic = PostTopic.get(PostTopic.str == topic_id)
    except PostTopic.DoesNotExist:
        return None
    current_page = get_page_number(current_page)
    posts, page_number_limit = Post.list_by_topic(topic,
                                                  page_number=current_page)
    top_posts, _ = Post.list_top()
    pages = get_page_nav(current_page, page_number_limit, page_limit)
    return topic, posts, top_posts, pages
Exemplo n.º 5
0
 def post(self, *args, **kwargs):
     post_data = get_cleaned_post_data(self, ['title', 'content', 'topic'])
     try:
         topic = PostTopic.get(PostTopic.str == post_data['topic'])
     except PostTopic.DoesNotExist:
         self.write(json_result(1, '请选择正确主题'))
         return
     post = Post.create(topic=topic,
                        title=post_data['title'],
                        content=post_data['content'],
                        user=self.current_user)
     #添加通知, 通知给其他关注的用户
     Notification.new_post(post)
     self.write(json_result(0, {'post_id': post.id}))