Пример #1
0
 def search_list(self):
     """
     文章搜索列表
     :return:
     """
     inputs = self.get_input()
     page = int(inputs.get('page', 1))
     page_size = int(inputs.get('page_size', 20))
     keywords = inputs.get('keywords', None)
     self.private_data['article_list'] = []
     self.private_data['current_page'] = 1
     self.private_data['total_page'] = 0
     self.private_data['category_list'] = []
     self.private_data['keywords'] = keywords
     try:
         category_list = Categories.select().where(Categories.status == 0). \
             order_by(Categories.id.desc())
         if keywords:
             article_query = Articles.select().where(
                 Articles.name.contains(keywords))
             total_count = article_query.count()
             total_page = (total_count + page_size - 1) / page_size
             self.private_data['total_page'] = total_page
             self.private_data['current_page'] = page
             self.private_data['category_list'] = category_list
             self.private_data['article_list'] = article_query.\
                 paginate(page, page_size)
             return self.display('front/search_list')
     except Exception as e:
         log.info('Failed to get search result. Keywords is %s. Error msg is',
                  keywords, e)
         log.error(traceback.format_exc())
     return self.display('front/search_list')
Пример #2
0
 def update_category(self):
     inputs = self.get_input()
     if web.ctx.method == "GET":
         category_id = inputs.get("category_id")
         category = Categories.get_or_none(Categories.id == category_id)
         category_list = Categories.select().where(Categories.status == 0)
         self.private_data["category"] = category
         self.private_data["category_list"] = category_list
         return self.display("admin/update_category")
     else:
         category_id = inputs.get('category_id')
         name = inputs.get('name')
         desc = inputs.get('desc')
         parent_id = inputs.get("parent_id")
         category = Categories.get_or_none(Categories.id == category_id)
         try:
             category.update(name=name,
                             description=desc,
                             parent_id=parent_id). \
                 where(Categories.id == category_id).execute()
             self.private_data["create_success"] = True
             return web.seeother(self.make_url('category_list'))
         except Exception as e:
             log.error('update category failed %s' % traceback.format_exc())
             log.error('input params %s' % inputs)
             self.private_data["update_success"] = False
             return self.display("admin/update_category")
Пример #3
0
def _lastcateids(parent, iditem):
    try:
        id_item = iditem
        cate = Categories.select().where(Categories.id == parent)
        for item in cate:
            if item.children.count() == 0:
                id_item.append(item.id)
            elif item.children.count():
                _getchildren(item, id_item)
        return id_item
    except Exception:
        return False
Пример #4
0
    def categories(self):
        inputParams = self.getInput()

        try:
            parent = inputParams['parent']
            order = int(inputParams['order']) if inputParams.has_key('order') else -1
            categoriesList = Categories.select().where(Categories.parent==parent)
            self.privData['CATEGORIES_LIST'] = categoriesList
            self.privData['ORDER'] = order
            return self.display('categories-list')
        except Exception, e:
            return self.error(msg='获取分类列表失败: %s' % e)
Пример #5
0
 def resume(self):
     """标签下文章列表:return:"""
     self.private_data['category_list'] = []
     try:
         category_list = Categories.select().where(Categories.status == 0).\
             order_by(Categories.id.desc())
         self.private_data['category_list'] = category_list
         return self.display('front/resume')
     except Exception as e:
         log.info('Failed to get search result.tag is%s.Error msg is', e)
         log.error(traceback.format_exc())
     return self.display('front/resume')
Пример #6
0
 def update_article(self):
     inputs = self.get_input()
     if web.ctx.method == "GET":
         article_id = inputs.get("article_id")
         category_list = Categories.select().where(Categories.status == 0)
         article = Articles.get_or_none(Articles.id == article_id)
         print(article.id)
         self.private_data["article"] = article
         self.private_data["category_list"] = category_list
         return self.display("admin/update_article")
     else:
         article_id = inputs.get("article_id")
         name = inputs.get('name')
         content = inputs.get('content')
         summary = inputs.get("summary")
         category_id = inputs.get("category_id")
         source_url = inputs.get("source_url", "")
         keywords = str(inputs.get("keywords", "")).strip()
         article = Articles.get_or_none(Articles.id == article_id)
         try:
             tags_list = keywords.split(",") if keywords else []
             if tags_list:
                 got_tags = Tags.select().where(Tags.name.in_(tags_list))
                 tmp_list = []
                 for tag in got_tags:
                     tmp_list.append(tag.name)
                 for tag_str in tags_list:
                     tag_str.strip()
                     if tag_str not in tmp_list:
                         t = Tags(name=tag_str)
                         t.save()
                 db = TinyDB('settings/db.json')
                 db.truncate()
                 db.close()
             article.update(name=name,
                            content=content,
                            summary=summary,
                            category_id=category_id,
                            original_address=source_url,
                            keywords=keywords,
                            updateTime=time()).where(
                                Articles.id == article_id).execute()
             self.private_data["update_success"] = True
             return web.seeother(self.make_url('articles'))
         except Exception as e:
             log.error('update article failed %s' % traceback.format_exc())
             log.error('input params %s' % inputs)
             self.private_data["update_success"] = False
             return web.seeother(self.make_url('update_article'))
Пример #7
0
 def about(self):
     """
     文章详情信息
     :return:
     """
     self.private_data['category_list'] = []
     try:
         category_list = Categories.select().where(Categories.status == 0). \
             order_by(Categories.id.desc()).execute()
         self.private_data['category_list'] = category_list
         return self.display('front/about')
     except Exception as e:
         log.info('Failed to get article info.  Error msg '
                  'is', e)
         log.error(traceback.format_exc())
     return self.display('front/about')
Пример #8
0
 def article_tag_list(self):
     """标签下文章列表:return:"""
     inputs = self.get_input()
     tag = inputs.get('tag', None)
     self.private_data['category_list'] = []
     self.private_data['tag'] = tag
     self.private_data['article_list'] = []
     try:
         category_list = Categories.select().where(Categories.status == 0).\
             order_by(Categories.id.desc())
         if tag:
             article_query = Articles.select().where(Articles.keywords.contains(tag))
             self.private_data['category_list'] = category_list
             self.private_data['article_list'] = article_query.paginate(1, 20)
         return self.display('front/tags_list')
     except Exception as e:
         log.info('Failed to get search result.tag is%s.Error msg is', tag, e)
         log.error(traceback.format_exc())
     return self.display('front/tags_list')    \
Пример #9
0
 def category_list(self):
     inputs = self.get_input()
     page = int(inputs.get('page', 1))
     page_size = int(inputs.get('page_size', 20))
     self.private_data['current_page'] = page
     self.private_data['total_page'] = 0
     self.private_data['category_list'] = []
     try:
         category_query = Categories.select().where(Categories.status == 0). \
             order_by(Categories.id.desc())
         total_count = category_query.count()
         total_page = (total_count + page_size - 1) / page_size
         self.private_data['category_list'] = \
             category_query.paginate(page, page_size).execute()
         self.private_data['total_page'] = total_page
         return self.display("admin/category_list")
     except Exception as e:
         log.error('Failed to get category list data. Error msg %s', e)
         log.error(traceback.format_exc())
     return self.display('admin/category_list')
Пример #10
0
 def GET(self):
     """
     首页
     :return:
     """
     inputs = self.get_input()
     page = int(inputs.get('page', 1))
     page_size = int(inputs.get('page_size', 20))
     self.private_data['article_list'] = []
     self.private_data['current_page'] = 1
     self.private_data['total_page'] = 0
     self.private_data['category_list'] = []
     try:
         album = Albums.get(Albums.is_show == 1)
         images = Images.select().where(Images.status == 0,
                                             Images.album == album.id)
         images_dict_list = []
         for image in images.dicts().iterator():
             image_dict = {
                 'link': image.get("link"),
                 'url': config.WEB_URL + 'static/uploads/' +
                        image.get("uuid") + '.jpeg'
             }
             images_dict_list.append(image_dict)
         category_list = Categories.select().where(
             Categories.status == 0). \
             order_by(Categories.id.desc())
         article_query = Articles.select().where(Articles.status == 0). \
             order_by(Articles.id.desc())
         article_list = article_query.paginate(page, page_size)
         total_count = article_query.count()
         total_page = (total_count + page_size - 1) / page_size
         self.private_data['article_list'] = article_list.execute()
         self.private_data['current_page'] = page
         self.private_data['total_page'] = total_page
         self.private_data['images_list'] = images_dict_list
         self.private_data['category_list'] = category_list.execute()
     except Exception as e:
         log.error('Failed to get home data. Error msg %s', e)
         log.error(traceback.format_exc())
     return self.display('front/index')
Пример #11
0
 def article_info(self):
     """
     文章详情信息
     :return:
     """
     inputs = self.get_input()
     article_id = int(inputs.get('article_id', 1))
     self.private_data['article'] = None
     self.private_data['category_list'] = []
     try:
         category_list = Categories.select().where(Categories.status == 0). \
             order_by(Categories.id.desc()).execute()
         article = Articles.get(Articles.id == article_id)
         self.private_data['article'] = article
         self.private_data['category_list'] = category_list
         return self.display('front/article_info')
     except Exception as e:
         log.info('Failed to get article info. Article id is %s. Error msg '
                  'is', article_id, e)
         log.error(traceback.format_exc())
     return self.display('front/article_info')
Пример #12
0
    def articles(self):
        """
        文章分类列表
        :return:
        """
        inputs = self.get_input()
        page = int(inputs.get('page', 1))
        page_size = int(inputs.get('page_size', 20))
        category_id = int(inputs.get('category_id', 2))
        self.private_data['article_list'] = []
        self.private_data['current_page'] = 1
        self.private_data['total_page'] = 0
        self.private_data['category_list'] = []
        self.private_data['current_category'] = None
        try:
            category = Categories.get(Categories.id == category_id)
            category_list = Categories.select().where(Categories.status == 0).\
                order_by(Categories.id.desc())

            article_query = Articles.select().where(
                Articles.category == category.id).order_by(Articles.id.desc())
            article_list = article_query.paginate(page, page_size)
            total_count = article_query.count()
            total_page = (total_count + page_size - 1) / page_size
            self.private_data['article_list'] = article_list
            self.private_data['current_category'] = category
            self.private_data['current_page'] = page
            self.private_data['category_list'] = category_list
            self.private_data['total_page'] = total_page
            return self.display('front/article_list')
        except Exception as e:
            log.error('Failed to get category articles data. '
                      'Category_id is %s Error msg %s', category_id, e)
            log.error(traceback.format_exc())
        # return self.error(msg="获取列表信息失败!", url=self.make_url('/views/home'))
        return self.display('front/article_list')
Пример #13
0
 def get_ca_count(self, category_id):
     return Categories.select().join(Articles).\
         where(Articles.category.id == int(category_id)).count()