]>
Commit | Line | Data |
---|---|---|
12e5de7e MT |
1 | #!/usr/bin/python |
2 | ||
3 | import tornado.web | |
4 | ||
5 | import handlers_base as base | |
6 | ||
f91dfcc7 MT |
7 | from . import ui_modules |
8 | ||
8a897d25 MT |
9 | class IndexHandler(base.BaseHandler): |
10 | def get(self): | |
11 | posts = self.planet.get_entries(limit=3) | |
12 | ||
13 | self.render("blog/index.html", posts=posts) | |
14 | ||
15 | ||
cfc0823a MT |
16 | class AuthorHandler(base.BaseHandler): |
17 | def get(self, uid): | |
18 | author = self.accounts.get_by_uid(uid) | |
19 | if not author: | |
20 | raise tornado.web.HTTPError(404, "User is unknown") | |
21 | ||
22 | # Get all posts from this author | |
23 | posts = self.planet.get_entries_by_author(author.uid) | |
24 | if not posts: | |
25 | raise tornado.web.HTTPError(404, "User has no posts") | |
26 | ||
27 | self.render("blog/author.html", author=author, posts=posts) | |
28 | ||
29 | ||
12e5de7e MT |
30 | class PostHandler(base.BaseHandler): |
31 | def get(self, slug): | |
32 | entry = self.planet.get_entry_by_slug(slug) | |
33 | if not entry: | |
34 | raise tornado.web.HTTPError(404) | |
35 | ||
36 | self.render("blog/post.html", post=entry) | |
f91dfcc7 MT |
37 | |
38 | ||
39 | class PostModule(ui_modules.UIModule): | |
40 | def render(self, post): | |
41 | return self.render_string("blog/modules/post.html", post=post) | |
8a897d25 MT |
42 | |
43 | ||
44 | class PostsModule(ui_modules.UIModule): | |
45 | def render(self, posts): | |
46 | return self.render_string("blog/modules/posts.html", posts=posts) |