]> git.ipfire.org Git - people/shoehn/ipfire.org.git/blame - webapp/handlers_planet.py
Fix BIO menu.
[people/shoehn/ipfire.org.git] / webapp / handlers_planet.py
CommitLineData
940227cb
MT
1#!/usr/bin/python
2
3import tornado.web
4
5from handlers_base import *
6
7import backend
8
9from backend.databases import Databases
10
11class PlanetBaseHandler(BaseHandler):
12 @property
13 def db(self):
14 return Databases().webapp
15
16 @property
17 def planet(self):
18 return backend.Planet()
19
20
21class PlanetMainHandler(PlanetBaseHandler):
bcc3ed4d
MT
22 rss_url = "/rss"
23
940227cb
MT
24 def get(self):
25 offset = int(self.get_argument("offset", 0))
26 limit = int(self.get_argument("limit", 4))
27
28 entries = self.planet.get_entries(offset=offset, limit=limit)
29
55b162d6 30 self.render("planet/index.html", entries=entries,
940227cb
MT
31 offset=offset + limit, limit=limit)
32
33
34class PlanetUserHandler(PlanetBaseHandler):
35 def get(self, author):
36 author = self.accounts.search(author)
37 if not author:
38 raise tornado.web.HTTPError(404, "User is unknown")
39
40 offset = int(self.get_argument("offset", 0))
41 limit = int(self.get_argument("limit", 4))
42
43 entries = self.planet.get_entries_by_author(author.uid,
44 offset=offset, limit=limit)
45
55b162d6 46 self.render("planet/user.html", author=author, entries=entries,
bcc3ed4d 47 offset=offset + limit, limit=limit, rss_url="/user/%s/rss" % author.uid)
940227cb
MT
48
49
50class PlanetPostingHandler(PlanetBaseHandler):
51 def get(self, slug):
52 entry = self.planet.get_entry_by_slug(slug)
53
54 if not entry:
55 raise tornado.web.HTTPError(404)
56
55b162d6 57 self.render("planet/posting.html",
940227cb 58 author=entry.author, entry=entry)