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