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
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))
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