Exemplo n.º 1
0
 def create(self, *args, **kwargs):
     u"""メモの新規保存処理をします。"""
     form = request.form.copy()
     result, data = ArticleModel.validate(form)
     if not result:
         alert = {'errors': data}
         tmp = self.renderTemplate('index/form.html',
                                   action="/",
                                   method="POST")
         defaults = {
             'title': form['title'],
             'text': form['text'],
             'tags': form['tags']
         }
         form = htmlfill.render(tmp, defaults)
         return self.renderTemplate('index/new.html',
                                    form=form,
                                    alert=alert)
     else:
         model = ArticleModel()
     try:
         model.publish(title=data['title'], text=data['text'])
         SystemInfoModel.incrementArticleCount()
         createTags(data['tags'], model)
         flash(u'保存したかもしれない', 'success')
     except:
         flash((u'失敗したぽよ'), 'errors')
     return redirect('/')
Exemplo n.º 2
0
def post_article(title: str = Form(...),
                 body: str = Form(...),
                 session_id=Cookie(default=None)):
    article_model = ArticleModel(config)
    user_id = session.get(session_id).get("user").get("id")
    article_model.create_article(user_id, title, body)
    return RedirectResponse("/articles", status_code=HTTP_302_FOUND)
Exemplo n.º 3
0
def articles_index(request: Request, session_id=Cookie(default=None)):
    user = session.get(session_id).get("user")
    article_model = ArticleModel(config)
    articles = article_model.fetch_recent_articles()
    return templates.TemplateResponse("article-index.html", {
        "request": request,
        "articles": articles,
        "user": user
    })
Exemplo n.º 4
0
def article_detail_page(request: Request, article_id: int, session_id=Cookie(default=None)):
    article_model = ArticleModel(config)
    article = article_model.fetch_article_by_id(article_id)
    user = session.get(session_id).get("user")
    return templates.TemplateResponse("article-detail.html", {
        "request": request,
        "article": article,
        "user": user
    })