def get(self): index_text = memcache.get("index") if not index_text: count = Review.all(keys_only=True).count() last_twelve = Review.gql("ORDER BY creationDate DESC LIMIT 12") percentage = count/20.0 if percentage > 100.0: percentage = 100 template = jinja_environment.get_template("index.html") index_text = template.render({"categories":Review.categories, "percentage":percentage, "numReviews":count, "latestReviews":last_twelve}) memcache.add("index", index_text) self.response.out.write(index_text)
def get(self, category): template = jinja_environment.get_template("view.html") if users.is_current_user_admin(): if category and category in Review.categories: reviews_collection = OrderedDict() for rating in Review.ratings: reviews = Review.gql("WHERE rating = '%s' AND category = '%s'" % (rating, category)) if reviews.count() > 0: reviews_collection[rating] = reviews self.response.out.write(template.render({"reviewsCollection": reviews_collection, "admin":True,"categories":Review.categories, "category":category})) else: reviews_collection = OrderedDict() for rating in Review.ratings: reviews = Review.gql("WHERE rating = '%s'" % rating) if reviews.count() > 0: reviews_collection[rating] = reviews self.response.out.write(template.render({"reviewsCollection":reviews_collection, "admin":True,"categories":Review.categories})) #Not admin so cache etc else: if category and category in Review.categories: reviews_text = memcache.get("/view/%s" % category) if reviews_text is None: reviews_collection = OrderedDict() for rating in Review.ratings: reviews = Review.gql("WHERE rating = '%s' AND category = '%s'" % (rating, category)) if reviews.count() > 0: reviews_collection[rating] = reviews reviews_text = template.render({"reviewsCollection":reviews_collection, "admin":False,"categories":Review.categories, "category":category}) memcache.add("/view/%s" % category, reviews_text) else: reviews_text = memcache.get("/view") if reviews_text is None: reviews_collection = OrderedDict() for rating in Review.ratings: reviews = Review.gql("WHERE rating = '%s'" % rating) if reviews.count() > 0: reviews_collection[rating] = reviews reviews_text = template.render({"reviewsCollection":reviews_collection, "admin":False,"categories":Review.categories}) memcache.add("/view", reviews_text) self.response.out.write(reviews_text)