Example #1
0
def RootMenu(config):
    if config.options.test_menu_search:
        return MenuItem.create_root(TestMenuSearch(config, config.options.test_menu_search))
    elif config.options.test_menu:
        return MenuItem.create_root(TestMenu(config))
    else:
        return MenuItem.create_root(RootPopulator(config))
def addMenuItem(dishKey, day, containingMenuItem = None):
	# Store it in database
	dish=db.get(dishKey)
	menuItem=MenuItem()
	menuItem.day=day
	menuItem.dish=dish
	menuItem.price = dish.category.basePrice
	menuItem.categoryKey=str(dish.category.key())
	menuItem.containingMenuItem = containingMenuItem
	menuItem.put()
	# Store it in cache
	client = memcache.Client()
	client.set(str(menuItem.key()), createMenuItemData(menuItem))
	key = MENU_ITEMS_FOR_DAY+ str(menuItem.day) + "_" + str(menuItem.categoryKey)
	daysItems = client.get(key)
	#If we have something to update
	if daysItems != None and containingMenuItem == None:
		# Just add this menu item
		daysItems.append(createMenuItemData(menuItem))
		client.set(key,daysItems)
	availableKey = MENU_ITEMS_FOR_DAY+ str(menuItem.day)
	daysAvailableItems = client.get(availableKey)
	#If we have something to update
	if daysAvailableItems != None and containingMenuItem == None:
		# Just add this menu item
		daysAvailableItems.append(createMenuItemData(menuItem))
		client.set(availableKey,daysAvailableItems)
def getDaysAvailableMenuItems(day):
	client = memcache.Client()
	key = MENU_ITEMS_FOR_DAY+ str(day)
	daysItems = client.get(key)
	if daysItems == None:
		menuItems = MenuItem.all().filter("day = ", day).filter("containingMenuItem = ", None)
		daysItems=[]
		for menuItem in menuItems:
			menuItemObject = createMenuItemData(menuItem)
			daysItems.append(menuItemObject)
		client.set(key,daysItems)
	# Fetch dishes for menu items
	ret = []
	for menuItem in daysItems:
		sumprice = 0
		dish = getDish(menuItem['dishKey'])
		menuItem['dish'] = dish
		if dish != None:
			sumprice = dish['price']
		components = []
		for subItemKey in menuItem['componentKeys']:
			component = getMenuItem(subItemKey)
			components.append(component)
			componentDish = getDish(component['dishKey'])
			if componentDish != None:
				sumprice = sumprice + componentDish['price']
		menuItem['sumprice'] = sumprice
		menuItem['components'] = components
		ret.append(menuItem)
	return ret
def addMenuItemToComposit(compositKey, menuItemKey):
	composit = Composit.get(compositKey)
	menuItem = MenuItem.get(menuItemKey)
	compositItem = CompositMenuItemListItem()
	compositItem.menuItem = menuItem
	compositItem.composit = composit
	compositItem.put()
	modifyComposit(composit)
def getDaysMenuItems(day, categoryKey):
	client = memcache.Client()
	key = MENU_ITEMS_FOR_DAY+ str(day) + "_" + str(categoryKey)
	daysItems = client.get(key)
	if daysItems == None:
		menuItems = MenuItem.all().filter("day = ", day).filter("categoryKey = ", categoryKey).filter("containingMenuItem = ", None)
		daysItems=[]
		for menuItem in menuItems:
			menuItemObject = createMenuItemData(menuItem)
			daysItems.append(menuItemObject)
		client.set(key,daysItems)
	# Fetch dishes for menu items
	ret = []
	for menuItem in daysItems:
		menuItemObject=getMenuItem(menuItem['key']);
		ret.append(menuItemObject)
	return ret
Example #6
0
	def get(self):
		if not isUserAdmin(self):
			self.session[LOGIN_NEXT_PAGE_KEY] = self.URL
			self.redirect("/")
			return
		menuItems = MenuItem.all()
		newMenuItems = []
		for menuItem in menuItems:
			try:
				menuItem.dish.key()
			except:
				menuItem.dish = None
			newMenuItems.append(menuItem)
		template_values = {
			'menuItems' : menuItems
		}
		template = jinja_environment.get_template('templates/csv/menuItemList.download')
		self.response.out.write(template.render(template_values))
Example #7
0
def newMenuItem(restaurant_id):
    if 'username' not in login_session:
        return redirect('/login')
    restaurant = session.query(Restaurant).filter_by(id=restaurant_id).one()
    if login_session['user_id'] != restaurant.user_id:
        return """<script>function myFunction()
        {alert('You are not authorized to add menu items to this restaurant.
        Please create your own restaurant in order to add items.');}
        </script><body onload='myFunction()'>"""
    if request.method == 'POST':
        newItem = MenuItem(name=request.form['name'],
                           description=request.form['description'],
                           price=request.form['price'],
                           course=request.form['course'],
                           restaurant_id=restaurant_id,
                           user_id=restaurant.user_id)
        session.add(newItem)
        session.commit()
        flash('New Menu %s Item Successfully Created' % (newItem.name))
        return redirect(url_for('showMenu', restaurant_id=restaurant_id))
    else:
        return render_template('newmenuitem.html', restaurant_id=restaurant_id)
def getMenuItem(key):
	client = memcache.Client()
	menuItem = client.get(key)
	if menuItem == None:
		try:
			menuItemDb = MenuItem.get(key)
			if menuItemDb == None:
				return None
			menuItem = createMenuItemData(menuItemDb)
			client.set(key,menuItem)
		except:
			return None
	# Fetch dish for menu item and fetch subitem
	try:
		dish = getDish(menuItem['dishKey'])
	except KeyError:
		return None
	eggFree = False
	milkFree = False
	if dish == None:
		creationDate = datetime.datetime.strptime("2011-10-01", "%Y-%m-%d").date()
		menuItem['dish'] = dummyDish()
		sumprice = 0
		energy = 0
		fat = 0
		carbs = 0
		fiber = 0
		protein = 0
	else:
		if dish['creationDate'] == None:
			creationDate = datetime.datetime.strptime("2011-10-01", "%Y-%m-%d").date()
		else:
			creationDate = dish['creationDate']
		menuItem['dish'] = dish
		try:
			eggFree = dish['eggFree']
		except:
			pass
		try:
			milkFree = dish['milkFree']
		except:
			pass
		sumprice = dish['price']
		energy = dish['energy']
		fat = dish['fat']
		carbs = dish['carbs']
		fiber = dish['fiber']
		protein = dish['protein']
	# Calculate sum price
	components = []
	for subItemKey in menuItem['componentKeys']:
		component = getMenuItem(subItemKey)
		if component['creationDate'] > creationDate:
			creationDate = component['creationDate']
		components.append(component)
		componentPrice = component['dish']['price']
		componentEnergy = component['dish']['energy']
		componentFat = component['dish']['fat']
		componentCarbs = component['dish']['carbs']
		componentFiber = component['dish']['fiber']
		componentProtein = component['dish']['protein']
		if componentPrice != None:
			sumprice = sumprice + componentPrice
		if componentEnergy != None:
			energy = energy + componentEnergy
		if componentFat != None:
			fat = fat + componentFat
		if componentCarbs != None:
			carbs = carbs + componentCarbs
		if componentFiber != None:
			fiber = fiber + componentFiber
		if componentProtein != None:
			protein = protein + componentProtein
		eggFree = eggFree and component['eggFree']
		milkFree = milkFree and component['milkFree']
	menuItem['sumprice'] = sumprice
	menuItem['energy'] = energy
	menuItem['fat'] = fat
	menuItem['carbs'] = carbs
	menuItem['fiber'] = fiber
	menuItem['protein'] = protein
	menuItem['creationDate'] = creationDate
	menuItem['components'] = components
	menuItem['eggFree']=eggFree
	menuItem['milkFree']=milkFree
	menuItem['novelty']=((datetime.datetime.today().date() - creationDate).days < 7)
	return menuItem