示例#1
0
 def update_article(db_session, article):
     try:
         summary = article["summary"].strip(
         ) if article["summary"] else None
         if not summary:
             summary = ArticleService.get_core_content(
                 article["content"], ArticleService.SUMMARY_LIMIT)
         article_to_update = ArticleService.get_article_all(
             db_session, article["id"])
         article_old = Article(
             title=article_to_update.title,
             content=article_to_update.content,
             summary=article_to_update.summary,
             articleType_id=article_to_update.articleType_id,
             source_id=article_to_update.source_id)
         article_to_update.title = article["title"]
         article_to_update.content = article["content"]
         article_to_update.summary = summary
         article_to_update.articleType_id = int(
             article["articleType_id"]
         ) if article["articleType_id"] else None
         article_to_update.source_id = int(
             article["source_id"]) if article["source_id"] else None
         db_session.commit()
         return article_to_update, article_old
     except Exception, e:
         logger.exception(e)
示例#2
0
文件: view.py 项目: Neo-python/cc
def add_article():
    """添加新的物品
    通过计算物总数,得到当前新增物品的排序编号.
    :return 返回最新物品列表
    """
    sorting = Article.query.count()
    name = request.args.get('NewProductName')
    Article(name=name, sorting=sorting).direct_commit_()
    return article_name()
示例#3
0
 def submit_get(self):
     article_draft = self.session.pop(session_keys['article_draft'], None)
     article = None
     if article_draft:
         source_id = article_draft.get("source_id")
         type_id = article_draft.get("articleType_id")
         article = Article(source_id=int(source_id) if source_id else None,
                           title=article_draft.get("title"),
                           articleType_id=int(type_id) if type_id else None,
                           content=article_draft.get("content"),
                           summary=article_draft.get("summary"))
     article_types = yield self.async_do(ArticleTypeService.list_simple, self.db)
     self.render("admin/submit_articles.html", article_types=article_types, article=article)
示例#4
0
 def add_article(db_session, article):
     try:
         summary = article["summary"].strip() if article["summary"] else None
         if not summary:
             summary = ArticleService.get_core_content(article["content"], ArticleService.SUMMARY_LIMIT)
         article_to_add = Article(title=article["title"], content=article["content"],
                                  summary=summary, articleType_id=article["articleType_id"],
                                  source_id=article["source_id"])
         db_session.add(article_to_add)
         db_session.commit()
         return article_to_add
     except Exception, e:
         logger.exception(e)
示例#5
0
    async def submit_get(self):
        # 草稿
        article_draft = self.session.pop(session_keys['article_draft'], None)
        article = None
        if article_draft:
            source_id = article_draft.get("source_id")
            type_id = article_draft.get("articleType_id")
            article = Article(source_id=int(source_id) if source_id else None,
                              title=article_draft.get("title"),
                              articleType_id=int(type_id) if type_id else None,
                              content=article_draft.get("content"),
                              summary=article_draft.get("summary"))

        article_types = await self.loop_current.run_in_executor(
            self.thread_executor, ArticleTypeService.list_simple, self.db)
        self.render("admin/submit_articles.html",
                    article_types=article_types,
                    article=article)
示例#6
0
def json_to_articles(path):
    for line in open(path, "r"):
        if line:
            params = json.loads(line)
            yield Article(**params["result"])
示例#7
0
def add_article_to_db(article_data):

    issue_obj = article_data['issue_obj']
    rubric_obj = article_data['rubric_obj']
    article_obj = Article(
        issue=issue_obj,
        rubric=rubric_obj,
        file_name=article_data["file_name"],
    )
    article_obj.save()

    article_locale_obj = Article_Locale(
        lang_code=lng_code_ukr,
        caption=article_data["caption_uk"],
        abstract=article_data["abstract_uk"],
        article=article_obj,
    )
    article_locale_obj.save()

    article_locale_obj = Article_Locale(
        lang_code=lng_code_en,
        caption=article_data["caption_en"],
        abstract=article_data["abstract_en"],
        article=article_obj,
    )
    article_locale_obj.save()
    for j, ((last_uk, first_uk, middle_uk), (last_en, first_en, middle_en)) \
            in enumerate(zip(article_data["author_uk"], article_data["author_en"])):

        author_obj_lst = Author.objects.filter(
                author_locale__lang_code__iexact = lng_code_ukr,
                author_locale__first_name__iexact = first_uk,
                author_locale__middle_name__iexact = middle_uk,
                author_locale__last_name__iexact = last_uk).\
                filter(
                author_locale__lang_code__iexact = lng_code_en,
                author_locale__first_name__iexact = first_en,
                author_locale__middle_name__iexact = middle_en,
                author_locale__last_name__iexact = last_en)
        if len(author_obj_lst) == 1:
            author_obj = author_obj_lst[0]
        elif len(author_obj_lst) == 0:
            author_obj = Author.objects.create()
            Author_Locale.objects.create(lang_code=lng_code_ukr,
                                         author=author_obj,
                                         first_name=first_uk,
                                         middle_name=middle_uk,
                                         last_name=last_uk)

            Author_Locale.objects.create(lang_code=lng_code_en,
                                         author=author_obj,
                                         first_name=first_en,
                                         middle_name=middle_en,
                                         last_name=last_en)
        else:
            # TODO: raise exception and show error message: database integrity violation or log and send email
            author_obj = author_obj_lst[0]

        m = Article_Authors(article=article_obj,
                            author=author_obj,
                            author_order=j + 1)
        m.save()