]>
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 | ||
e6b18dce MT |
39 | class SearchHandler(base.BaseHandler): |
40 | def get(self): | |
41 | q = self.get_argument("q") | |
42 | ||
43 | posts = self.planet.search(q) | |
44 | if not posts: | |
45 | raise tornado.web.HTTPError(404, "Nothing found") | |
46 | ||
47 | self.render("blog/search-results.html", q=q, posts=posts) | |
48 | ||
49 | ||
f91dfcc7 MT |
50 | class PostModule(ui_modules.UIModule): |
51 | def render(self, post): | |
52 | return self.render_string("blog/modules/post.html", post=post) | |
8a897d25 MT |
53 | |
54 | ||
55 | class PostsModule(ui_modules.UIModule): | |
56 | def render(self, posts): | |
57 | return self.render_string("blog/modules/posts.html", posts=posts) |