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('/')
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)
def show(self, *args, **kwargs): u"""メモの詳細を表示します。""" id = kwargs["id"] model = ArticleModel.get_by_id(id) article = ArticleModel.getArticle(model) alert = dict(getFlashedMessage(withCategory=True)) return self.renderTemplate("index/show.html", article=article, alert=alert)
def show(self, *args, **kwargs): u"""メモの詳細を表示します。""" id = kwargs['id'] model = ArticleModel.get_by_id(id) article = ArticleModel.getArticle(model) alert = dict(getFlashedMessage(withCategory=True)) return self.renderTemplate('index/show.html', article=article, alert=alert)
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 })
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 })
def destroy(self, *args, **kwargs): u"""メモを破棄します。""" id = kwargs["id"] try: ArticleModel.deleteModel(id) SystemInfoModel.decrementArticleCount() flash(u"次はお前がこうなる番だ…", "success") except: flash((u"失敗したよ"), "errors") return "/"
def destroy(self, *args, **kwargs): u"""メモを破棄します。""" id = kwargs['id'] try: ArticleModel.deleteModel(id) SystemInfoModel.decrementArticleCount() flash(u'次はお前がこうなる番だ…', 'success') except: flash((u'失敗したよ'), 'errors') return '/'
def edit(self, *args, **kwargs): u"""メモを編集します。""" alert = dict(getFlashedMessage(withCategory=True)) id = kwargs["id"] model = ArticleModel.get_by_id(id) form = self.renderTemplate("index/form.html", action="/" + str(id), method="PUT") defaults = {"title": model.title, "text": model.text, "tags": ",".join([tag.tagname for tag in model.tags])} form = htmlfill.render(form, defaults) return self.renderTemplate("index/edit.html", form=form, alert=alert)
def index(self, *args, **kwargs): u"""メモを一覧で表示します。""" page = kwargs["page"] if "page" in kwargs else 1 count = SystemInfoModel.getArticleCount() articles = ArticleModel.getArticleForPage(page, PER_PAGE) pagination = Pagination(page, PER_PAGE, count) alert = dict(getFlashedMessage(withCategory=True)) return self.renderTemplate( "index/index.html", articles=articles, pagination=pagination, pagePath="/page/", alert=alert )
def tagIndex(self, *args, **kwargs): name = kwargs['tagname'] page = kwargs['page'] if 'page' in kwargs else 1 count = SystemInfoModel.getTagCnt(name) start = (page - 1) * PER_PAGE models = TagModel.all().filter('tagname =', name).order('-created_at').fetch(PER_PAGE, start) pagination = Pagination(page, PER_PAGE, count) articles = [ArticleModel.getArticle(m.article) for m in models] pagePath = '/tags/' + name + '/page/' return self.renderTemplate('index/index.html', articles=articles, pagination=pagination, tagname=name, pagePath=pagePath)
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("/")
def update(self, *args, **kwargs): u"""メモの編集結果を保存します。""" form = request.form.copy() id = kwargs['id'] try: model = ArticleModel.get_by_id(id) model.publish(title=form['title'], text=form['text']) updateTags(form['tags'], model) flash(u'保存したと思います。', 'success') except: flash((u'失敗しますた…'), 'errors') return '/' + str(id)
def update(self, *args, **kwargs): u"""メモの編集結果を保存します。""" form = request.form.copy() id = kwargs["id"] try: model = ArticleModel.get_by_id(id) model.publish(title=form["title"], text=form["text"]) updateTags(form["tags"], model) flash(u"保存したと思います。", "success") except: flash((u"失敗しますた…"), "errors") return "/" + str(id)
def index(self, *args, **kwargs): u"""メモを一覧で表示します。""" page = kwargs['page'] if 'page' in kwargs else 1 count = SystemInfoModel.getArticleCount() articles = ArticleModel.getArticleForPage(page, PER_PAGE) pagination = Pagination(page, PER_PAGE, count) alert = dict(getFlashedMessage(withCategory=True)) return self.renderTemplate('index/index.html', articles=articles, pagination=pagination, pagePath='/page/', alert=alert)
def edit(self, *args, **kwargs): u"""メモを編集します。""" alert = dict(getFlashedMessage(withCategory=True)) id = kwargs['id'] model = ArticleModel.get_by_id(id) form = self.renderTemplate('index/form.html', action='/' + str(id), method='PUT') defaults = { 'title': model.title, 'text': model.text, 'tags': ','.join([tag.tagname for tag in model.tags]) } form = htmlfill.render(form, defaults) return self.renderTemplate('index/edit.html', form=form, alert=alert)
def tagIndex(self, *args, **kwargs): name = kwargs['tagname'] page = kwargs['page'] if 'page' in kwargs else 1 count = SystemInfoModel.getTagCnt(name) start = (page - 1) * PER_PAGE models = TagModel.all().filter('tagname =', name).order('-created_at').fetch( PER_PAGE, start) pagination = Pagination(page, PER_PAGE, count) articles = [ArticleModel.getArticle(m.article) for m in models] pagePath = '/tags/' + name + '/page/' return self.renderTemplate('index/index.html', articles=articles, pagination=pagination, tagname=name, pagePath=pagePath)