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=')
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}))
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
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
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}))