from config import config from model import Post from model import PostStatus from model import PostSignals from model import Key from model import User from model import Comment from model import CommentSignals from model import Rollback from common import BlogHandler, attach_event INDEXPOSTFILTER = lambda x:x.filter("status =", PostStatus.NORMAL).order("-date_created") def rtotal_Index(*args, **kw): Post.refresh_total(func=INDEXPOSTFILTER) attach_event(func=rtotal_Index, signal=PostSignals.New) class IndexHandler(BlogHandler): def get(self): p = self.GET.get("p") p = int(p) if p and p.isdigit() else 1 pager = Post.fetch_page(p, func=INDEXPOSTFILTER) context = {"pager": pager} self.render("index.html", context) class CategoryHandler(BlogHandler): def get(self, category_key_name): p = self.GET.get("p") p = int(p) if p and p.isdigit() else 1
if action == "new": try: Category.new(pdict.get("category.url", randstr()), pdict.get("category.title"), pdict.get("category.discription") ) Category.refresh_total() except Rollback, ex: self.jsonout(ex) else: self.jsonout("ok") ADMINPOSTFILTER = lambda x:x.order("-date_created") def rtotal_AdminPost(*arg, **kw): Post.refresh_total(func=ADMINPOSTFILTER) attach_event(func=rtotal_AdminPost, signal=PostSignals.New) class AdminPostHandler(AdminHandler): def get(self): p = self.GET.get("p") p = int(p) if p and p.isdigit() else 1 pager = Post.fetch_page(p, func=ADMINPOSTFILTER) context = {"page_name": u"文章管理", "page_title": u"文章管理", "pager": pager } self.render("admin_post.html", context) class AdminModifyPostHandler(AdminHandler): def get(self, post_id): p = Post.get_by_id(int(post_id)) if post_id.isdigit() else None