]> git.ipfire.org Git - ipfire.org.git/blame - src/web/blog.py
blog: Add index page
[ipfire.org.git] / src / web / blog.py
CommitLineData
12e5de7e
MT
1#!/usr/bin/python
2
3import tornado.web
4
5import handlers_base as base
6
f91dfcc7
MT
7from . import ui_modules
8
8a897d25
MT
9class 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
16class 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
30class 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
39class PostModule(ui_modules.UIModule):
40 def render(self, post):
41 return self.render_string("blog/modules/post.html", post=post)
8a897d25
MT
42
43
44class PostsModule(ui_modules.UIModule):
45 def render(self, posts):
46 return self.render_string("blog/modules/posts.html", posts=posts)