]> git.ipfire.org Git - people/shoehn/ipfire.org.git/blobdiff - www/webapp/handlers_iuse.py
fireinfo: Add new image.
[people/shoehn/ipfire.org.git] / www / webapp / handlers_iuse.py
index 62e0eb378346979517d1f345e66ab0721523945f..e0b003a69668ffaa523ad9d0804796838fbaf457 100644 (file)
@@ -1,5 +1,6 @@
 #!/usr/bin/python
 
+import logging
 import tornado.web
 
 from handlers_base import *
@@ -15,12 +16,20 @@ class IUseImage(BaseHandler):
                return backend.Stasy()
 
        def get(self, profile_id, image_id):
+               image = None
                # Try to get the image from memcache. If we have a cache miss we
                # build a new one.
-               mem_id = "iuse-%s-%s" % (profile_id, image_id)
-               image = self.memcached.get(mem_id)
+               mem_id = "iuse-%s-%s-%s" % (profile_id, image_id, self.locale.code)
+
+               cache = self.get_argument("cache", "true")
+               if cache == "true":
+                       image = self.memcached.get(mem_id)
+
+               if image:
+                       logging.debug("Got image from cache for profile: %s" % profile_id)
+               else:
+                       logging.info("Rendering new image for profile: %s" % profile_id)
 
-               if not image:
                        image_cls = self.iuse.get_imagetype(image_id)
                        if not image_cls:
                                raise tornado.web.HTTPError(404, "Image class is unknown: %s" % image_id)
@@ -30,7 +39,7 @@ class IUseImage(BaseHandler):
                                raise tornado.web.HTTPError(404, "Profile '%s' was not found." % profile_id)
 
                        # Render the image
-                       image = image_cls(profile).to_string()
+                       image = image_cls(self, profile).to_string()
 
                        # Save the image to the memcache for 15 minutes
                        self.memcached.set(mem_id, image, 15*60)