]> git.ipfire.org Git - people/shoehn/ipfire.org.git/blame - www/webapp/handlers_planet.py
Import of new website.
[people/shoehn/ipfire.org.git] / www / 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):
22 def get(self):
23 offset = int(self.get_argument("offset", 0))
24 limit = int(self.get_argument("limit", 4))
25
26 entries = self.planet.get_entries(offset=offset, limit=limit)
27
28 self.render("planet-main.html", entries=entries,
29 authors=self.planet.get_authors(),
30 offset=offset + limit, limit=limit)
31
32
33class PlanetUserHandler(PlanetBaseHandler):
34 def get(self, author):
35 author = self.accounts.search(author)
36 if not author:
37 raise tornado.web.HTTPError(404, "User is unknown")
38
39 offset = int(self.get_argument("offset", 0))
40 limit = int(self.get_argument("limit", 4))
41
42 entries = self.planet.get_entries_by_author(author.uid,
43 offset=offset, limit=limit)
44
45 self.render("planet-user.html", author=author, entries=entries,
46 offset=offset + limit, limit=limit)
47
48
49class PlanetPostingHandler(PlanetBaseHandler):
50 def get(self, slug):
51 entry = self.planet.get_entry_by_slug(slug)
52
53 if not entry:
54 raise tornado.web.HTTPError(404)
55
56 self.render("planet-posting.html",
57 author=entry.author, entry=entry)