예제 #1
0
	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
예제 #5
0
	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)
예제 #6
0
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)
예제 #7
0
	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)