from handlers_base import *
class PlanetBaseHandler(BaseHandler):
- pass
+ def group_entries_by_month(self, entries):
+ months = {}
+
+ for entry in entries:
+ key = (entry.published.year, entry.published.month)
+
+ try:
+ months[key].append(entry)
+ except KeyError:
+ months[key] = [entry]
+
+ months = months.items()
+ months.sort(reverse=True)
+
+ return months
class PlanetMainHandler(PlanetBaseHandler):
if not author:
raise tornado.web.HTTPError(404, "User is unknown")
- offset = int(self.get_argument("offset", 0))
- limit = int(self.get_argument("limit", 4))
-
- entries = self.planet.get_entries_by_author(author.uid,
- offset=offset, limit=limit)
+ entries = self.planet.get_entries_by_author(author.uid)
+ entries = self.group_entries_by_month(entries)
- self.render("planet/user.html", author=author, entries=entries,
- offset=offset + limit, limit=limit, rss_url="/user/%s/rss" % author.uid)
+ self.render("planet/list.html", author=author, year=None,
+ entries=entries, rss_url="/user/%s/rss" % author.uid)
class PlanetPostingHandler(PlanetBaseHandler):
class PlanetYearHandler(PlanetBaseHandler):
def get(self, year):
entries = self.planet.get_entries_by_year(year)
+ entries = self.group_entries_by_month(entries)
- months = {}
- for entry in entries:
- try:
- months[entry.month].append(entry)
- except KeyError:
- months[entry.month] = [entry]
-
- months = months.items()
- months.sort(reverse=True)
-
- self.render("planet/year.html", months=months, year=year)
+ self.render("planet/list.html", author=None, year=year,
+ entries=entries)