def post(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 != "")): #Modification of basic data title = self.request.get('title') subtitle = self.request.get('subtitle') description = self.request.get('description') eggFree = (self.request.get('eggFree') == "yes") milkFree = (self.request.get('milkFree') == "yes") dishCategoryKey=self.request.get(DISH_CATEGORY_KEY) codeModifier=self.request.get(DISH_CODE_MODIFIER) dishCategory=None if ((dishCategoryKey != None) and (dishCategoryKey != "")): dishCategory = db.get(dishCategoryKey) modifyDish(dishKey, title, subtitle, description, dishCategory, eggFree, milkFree, codeModifier) self.redirect('/dish?dishKey=%s' % self.request.get('dishKey')) return else: dish = Dish() dish.creationDate = datetime.datetime.today().date() dish.title = self.request.get('title') dish.subtitle = self.request.get('subtitle') dish.description = self.request.get('description') dish.category = DishCategory.get(self.request.get('dishCategoryKey')) eggFree = (self.request.get('eggFree') == "yes") milkFree = (self.request.get('milkFree') == "yes") dish.milkFree = milkFree dish.eggFree = eggFree dish.put() addDish(dish) self.redirect('/dish?dishKey=%s' % str(dish.key()))
def getDishCategory(key): if key == None: return None client = memcache.Client() dishCategory = client.get(key) if dishCategory == None: dishCategoryDb = DishCategory.get(key) if dishCategoryDb != None: dishCategory = createCategoryObject(dishCategoryDb) client.set(dishCategory['key'], dishCategory) return dishCategory
def getDishCategories(): client = memcache.Client() categories=client.get(CATEGORIES_KEY) if categories == None: categories = DishCategory.all().order("index") categoryList=[] for category in categories: categoryObject=createCategoryObject(category); categoryList.append(categoryObject) client.set(CATEGORIES_KEY, categoryList) return categoryList return categories
def getCategoryWithDishes(key): client = memcache.Client() category = client.get(key) if category == None: categoryDb = DishCategory.get(key) if categoryDb != None: category = createCategoryObject(categoryDb); client.set(key, category) else: return None # Fetch dishes dishes = [] for dishKey in category['dishKeys']: dishes.append(getDish(dishKey)) category['dishes'] = dishes return category
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)
def addComposit(categoryKey, day): # Add it to database composit = Composit() composit.day=day composit.category=DishCategory.get(categoryKey) composit.price = composit.category.basePrice composit.categoryKey=str(categoryKey) composit.put() # Adds it to cache client = memcache.Client() key = COMPOSIT_FOR_DAY+ str(composit.day) + "_" + str(composit.categoryKey) daysComposits = client.get(key) #If we have something to update if daysComposits != None: # Just add this menu item compositObject = createCompositData(composit) daysComposits.append(compositObject) client.set(compositObject['key'], compositObject) client.set(key,daysComposits)
def post(self): if not isUserCook(self): self.redirect("/") return dishCategoryKey = self.request.get("dishCategoryKey") if ((dishCategoryKey != None) and (dishCategoryKey != "")): dishCategory=db.get(self.request.get(DISH_CATEGORY_KEY)) else: dishCategory = DishCategory() dishCategory.name = self.request.get(DISH_CATEGORY_NAME) dishCategory.abbreviation = self.request.get(DISH_CATEGORY_ABBREVIATION) try: dishCategory.index = int(self.request.get(DISH_CATEGORY_INDEX)) except ValueError: dishCategory.index = 0 try: dishCategory.basePrice = int(self.request.get('basePrice')) except ValueError: dishCategory.basePrice = 0 dishCategory.isExtra = self.request.get('isExtra', default_value="no")=='yes' dishCategory.isMenu = self.request.get('isMenuCategory', default_value="no")=='yes' dishCategory.canBeTopLevel = self.request.get('canBeTopLevel', default_value="no")=='yes' dishCategory.put() if (dishCategoryKey != None and dishCategoryKey != ""): modifyCategory(dishCategory); else: addCategory(dishCategory); self.redirect(DISH_CATEGORY_URL)