def getDishes(): client = memcache.Client() dishKeys = client.get(ALL_DISHES) if dishKeys == None: dishKeys=[] dishes = Dish.gql("ORDER BY title") if dishes != None: for dish in dishes: dishKeys.append(str(dish.key())) client.set(ALL_DISHES, dishKeys) else: return None # Fetch dishes dishes = [] for dishKey in dishKeys: dishes.append(getDish(dishKey)) return dishes
def get(self): if not isUserCook(self): self.session[LOGIN_NEXT_PAGE_KEY] = self.URL self.redirect("/") return dishKey=self.request.get('dishKey') if ((dishKey != None) and (dishKey != "")): # A single dish with editable ingredient list dish=getDish(dishKey) #Check if category exists ingredients = dish['ingredients'] dish['energy'] = 0 for ingredient in ingredients: dish['energy'] = dish['energy'] + ingredient['quantity'] * ingredient['energy'] / 100.0 gotIngredients = getIngredients() availableIngredients = sorted(gotIngredients, key=lambda ingredient:ingredient['name']) gotCategories = getDishCategories() availableCategories = sorted(gotCategories, key=lambda category:category['name']) template_values = { 'dish': dish, 'availableCategories':availableCategories, 'availableIngredients':availableIngredients, 'add_url':"/addIngredientToDish", 'delete_url':"/deleteIngredientFromDish" } template = jinja_environment.get_template('templates/dish.html') self.printPage(dish['title'], template.render(template_values), False, False) else: # All the dishes unprocessedDishes = Dish.gql("ORDER BY title") dishes = [] for dish in unprocessedDishes: try: dish.category except ReferencePropertyResolveError: dish.category = None dishes.append(dish) availableCategories = DishCategory.gql("WHERE isMenu = False ORDER BY index") template_values = { 'dishes': dishes, 'availableCategories': availableCategories } template = jinja_environment.get_template('templates/dish_list.html') self.printPage("Receptek", template.render(template_values), False, False)