def publish() : if not session.get('is_admin'): return redirect(url_for('admin.login')) article_id = int(request.args.get('articleId', 0)) if not article_id : return abort(404) draft = db_session.query(Draft).filter(Draft.article_id == article_id).first() article = db_session.query(Article).filter(Article.id == article_id).first() if draft : if not article : article = Article(draft.user_id, draft.user_name, draft.title, draft.content) article.id = draft.article_id db_session.add(article) else : article.title = draft.title article.content = draft.content db_session.delete(draft) db_session.flush() return redirect('/detail?articleId=' + str(article_id))
def publish(): if not session.get('is_admin'): return redirect(url_for('admin.login')) article_id = int(request.args.get('articleId', 0)) if not article_id: return abort(404) draft = db_session.query(Draft).filter( Draft.article_id == article_id).first() article = db_session.query(Article).filter( Article.id == article_id).first() if draft: if not article: article = Article(draft.user_id, draft.user_name, draft.title, draft.content) article.id = draft.article_id db_session.add(article) else: article.title = draft.title article.content = draft.content db_session.delete(draft) db_session.flush() return redirect('/detail?articleId=' + str(article_id))
def get_article_list(index, type=''): try: index = int(index) except ValueError: index = 1 type = str(type) query = {} if type != '' and type != 'all': tt = article_dao.get_article_type_by_name(str(type)) if tt: query = {'type': str(tt['_id'])} else: return [], Page() item_limit = constants.item_limit * constants.item_limit_rate total_count = article_dao.get_article_count(query) page_count = int(math.ceil(total_count * 1.0 / item_limit)) if index > page_count or index < 1: offset = 0 index = 1 else: offset = (index - 1) * item_limit page = Page() page.index = index page.count = constants.page_count if page_count > constants.page_count else page_count if page.index <= page.count / 2: page.start = 1 else: page.start = page.index - int(page.count / 2) if page.start > page_count - page.count: page.start = page_count - page.count + 1 result = list(article_dao.get_article_list(offset, item_limit, query)) article_list = [] for art in result: model = Article() model._id = art['_id'] model.title = art['title'] model.tag = art['tag'] model.time = art['time'] model.content = art['content'] model.description = art['description'] model.visit_count = art['visit_count'] tt = article_dao.get_article_type_by_id(art['type']) if tt: model.type = tt['_id'] model.type_name = tt['type'] article_list.append(model) return article_list, page
def post(self, title=''): art = Article() art._id = self.get_argument('_id', '') art.title = self.get_argument('title', '') art.type = self.get_argument('type', '') art.tag = self.get_argument('tag', '') art.description = self.get_argument('description', '') art.content = self.get_argument('content', '') article_service.add_or_update_article(art) self.redirect('/system/article/list/1')
def get_article(title): model = Article() if title != '': art = article_dao.get_article_by_title(str(title)) if art: model._id = art['_id'] model.title = art['title'] model.tag = art['tag'] model.time = art['time'] model.content = art['content'] model.description = art['description'] model.visit_count = art['visit_count'] tt = article_dao.get_article_type_by_id(art['type']) if tt: model.type = tt['_id'] model.type_name = tt['type'] return model
def get_latest_article(): result = list(article_dao.get_latest_article(constants.item_limit)) latest_articles = [] for art in result: model = Article() model._id = art['_id'] model.title = art['title'] model.tag = art['tag'] model.time = art['time'] model.content = art['content'] model.description = art['description'] model.visit_count = art['visit_count'] tt = article_dao.get_article_type_by_id(art['type']) if tt: model.type = tt['_id'] model.type_name = tt['type'] latest_articles.append(model) return latest_articles