]> git.ipfire.org Git - ipfire.org.git/blobdiff - webapp/backend/planet.py
planet: Add yearly summary.
[ipfire.org.git] / webapp / backend / planet.py
index 62b8bf0ca4fd05b613e141a9a1d7347044c8393f..7f6a988ca310f86cf26d211b394788fe785f3413 100644 (file)
@@ -44,6 +44,14 @@ class PlanetEntry(object):
        def published(self):
                return self.__entry.published
 
+       @property
+       def year(self):
+               return self.published.year
+
+       @property
+       def month(self):
+               return self.published.month
+
        @property
        def updated(self):
                return self.__entry.updated
@@ -84,6 +92,12 @@ class Planet(object):
 
                return sorted(authors)
 
+       def get_years(self):
+               res = self.db.query("SELECT DISTINCT YEAR(published) AS year \
+                       FROM planet ORDER BY year DESC")
+
+               return [row.year for row in res]
+
        def get_entry_by_slug(self, slug):
                entry = self.db.get("SELECT * FROM planet WHERE slug = %s", slug)
                if entry:
@@ -128,6 +142,12 @@ class Planet(object):
 
                return [PlanetEntry(e) for e in entries]
 
+       def get_entries_by_year(self, year):
+               entries = self.db.query("SELECT * FROM planet \
+                       WHERE YEAR(published) = %s ORDER BY published DESC", year)
+
+               return [PlanetEntry(e) for e in entries]
+
        def render(self, text, limit=0):
                if limit and len(text) >= limit:
                        text = text[:limit] + "..."