]> git.ipfire.org Git - people/shoehn/ipfire.org.git/blobdiff - webapp/backend/releases.py
fireinfo: Easily get penetration of a certain release
[people/shoehn/ipfire.org.git] / webapp / backend / releases.py
index 6c556114187d5a91ff9a0fdb01d8a9331b3c02aa..9e68e5905d11de02102672f96af496d788cae318 100644 (file)
@@ -259,6 +259,16 @@ class Release(Object):
        def sname(self):
                return self.__data.sname
 
+       @property
+       def fireinfo_id(self):
+               name = self.sname.replace("ipfire-", "IPFire ").replace("-", " - ")
+
+               res = self.db.get("SELECT id FROM fireinfo_releases \
+                       WHERE name = %s", name)
+
+               if res:
+                       return res.id
+
        @property
        def stable(self):
                return self.__data.stable
@@ -410,6 +420,24 @@ class Release(Object):
 
                return self._news
 
+       # Fireinfo Stuff
+
+       @property
+       def penetration(self):
+               penetration = self.memcache.get("%s-penetration" % self.sname)
+
+               # Cache HIT
+               if penetration:
+                       return penetration
+
+               # Get penetration from fireinfo
+               penetration = self.backend.fireinfo.get_release_penetration(self)
+
+               # Cache for 1 hour
+               self.memcache.set("%s-penetration" % self.sname, penetration, 3600)
+
+               return penetration
+
 
 class Releases(Object):
        def get_by_id(self, id):