def getDaysItemsForCategory(categoryKey, actualDay, dayIndex, availableMenuItems): actualDayObject={} actualDayObject["day"]=dayNames[dayIndex] actualDayObject["date"]=actualDay menuItems = getDaysMenuItems(actualDay, categoryKey) composits = getDaysComposits(actualDay, categoryKey) #Filter menu items actualMenuItems=[] actualComposits=[] """for menuItem in menuItems: try: menuItem.occurrences[0] menuItem.alterable = False except IndexError: menuItem.alterable = True actualMenuItems.append(menuItem) for composit in composits: if composit.occurrences.count() > 0: composit.alterable = False else: composit.alterable = True actualComposits.append(composit) """ actualDayObject["menuItems"]=menuItems actualDayObject["composits"]=composits actualDayObject["availableMenuItems"]=availableMenuItems return actualDayObject
def get(self): #Determine the week day = getOrderBaseDate(self) firstOrderableDay = getFirstOrderableDate(self) monday = getMonday(day) #Organize into days menu=[] #Contains menu items actualOrder=self.session.get(ACTUAL_ORDER,[]) logInfo(self, self.URL, "DAY " + str(day)) logInfo(self, self.URL, "First orderable day " + str(firstOrderableDay)) logInfo(self, self.URL, "LOADED_ORDERS " + str(len(actualOrder))) dishCategories=getDishCategories() orderedPrice = [0,0,0,0,0] basketPrice = [0,0,0,0,0] userKey = self.session.get(USER_KEY,None) userOrders={} if (userKey != None): user = User.get(userKey) userOrders = getUserOrdersForWeek(user, monday) for category in dishCategories: actualCategoryObject={} actualCategoryObject['category']=category categoryKey=category['key'] items=[] itemsInRows=0 for i in range(0,5): actualDay=monday+datetime.timedelta(days=i) actualDayObject={} actualDayObject["day"]=dayNames[i] actualDayObject["date"]=actualDay menuItems = getDaysMenuItems(actualDay, categoryKey) composits=getDaysComposits(actualDay, categoryKey) #Filter menu items actualMenuItems=[] actualComposits=[] for menuItem in menuItems: itemKeyStr=menuItem['key'] try: if (actualOrder!=None) and (itemKeyStr in actualOrder): menuItem['inCurrentOrder']=actualOrder[itemKeyStr] try: basketPrice[i] = basketPrice[i] + menuItem['price'] * int(actualOrder[itemKeyStr]) except: pass else: menuItem['inCurrentOrder']=0 try: menuItem['orderedQuantity'] = userOrders[itemKeyStr] try: orderedPrice[i] = orderedPrice[i] + menuItem['price'] * int(userOrders[itemKeyStr]) except: pass except KeyError: menuItem['orderedQuantity'] = 0 if actualDay < firstOrderableDay or (menuItem['active'] == False): menuItem['orderable']=False else: menuItem['orderable']=True #if (menuItem.orderable or menuItem.orderedQuantity > 0): actualMenuItems.append(menuItem) itemsInRows=itemsInRows+1 except ReferencePropertyResolveError: continue for composit in composits: if (actualOrder!=None) and (composit['key'] in actualOrder): composit['inCurrentOrder']=actualOrder[composit['key']] try: basketPrice[i] = basketPrice[i] + composit['price'] * int(actualOrder[composit['key']]) except: pass else: composit['inCurrentOrder']=0 try: composit['orderedQuantity'] = userOrders[composit['key']] try: orderedPrice[i] = orderedPrice[i] + composit['price'] * int(userOrders[composit['key']]) except: pass except KeyError: composit['orderedQuantity'] = 0 if composit['day'] < firstOrderableDay or (composit['active'] == False): composit['orderable']=False else: composit['orderable']=True actualComposits.append(composit) itemsInRows=itemsInRows + 1 actualDayObject["menuItems"]=actualMenuItems actualDayObject["composits"]=actualComposits items.append(actualDayObject) actualCategoryObject["days"]=items if (itemsInRows > 0): menu.append(actualCategoryObject) days=[] for i in range(0,5): actualDayObject={} actualDayObject["orderedPrice"] = orderedPrice[i] actualDayObject["basketPrice"] = basketPrice[i] actualDayObject["totalPrice"] = orderedPrice[i] + basketPrice[i] actualDayObject["day"]=dayNames[i] actualDayObject["date"]=monday+datetime.timedelta(days=i) days.append(actualDayObject) # A single dish with editable ingredient list prevMonday=monday + datetime.timedelta(days=-7) nextMonday=monday + datetime.timedelta(days=7) today=datetime.date.today() actualMonday = getMonday(today) template_values = { 'days':days, 'menu':menu } if nextMonday <= actualMonday + datetime.timedelta(days=FURTHEST_DAY_DISPLAYED): template_values['next'] = nextMonday if prevMonday >= actualMonday: template_values['prev'] = prevMonday # A single dish with editable ingredient list template = jinja_environment.get_template('templates/menuOrder.html') logInfo(self, self.URL, "DISPLAY_MENU") self.printPage(str(day), template.render(template_values), True)
def get(self): if not isUserCook(self): self.session[LOGIN_NEXT_PAGE_KEY] = self.URL self.redirect("/") return day=getBaseDate(self) monday = getMonday(day) menu=[] #Contains menu items dishCategories=getDishCategories() orderedPrice = [0,0,0,0,0] orders = getOrdersForWeek(monday) for category in dishCategories: actualCategoryObject={} actualCategoryObject['category']=category categoryKey=category['key'] items=[] for i in range(0,5): actualDay=monday+datetime.timedelta(days=i) actualDayObject={} actualDayObject["day"]=dayNames[i] actualDayObject["date"]=actualDay menuItems = getDaysMenuItems(actualDay, categoryKey) composits=getDaysComposits(actualDay, categoryKey) #Filter menu items actualMenuItems=[] actualComposits=[] for menuItem in menuItems: itemKeyStr=menuItem['key'] if not orders.has_key(itemKeyStr): continue menuItem['orderedQuantity'] = orders[itemKeyStr] orderedPrice[i] = orderedPrice[i] + menuItem['price'] * int(orders[itemKeyStr]) actualMenuItems.append(menuItem) for composit in composits: itemKeyStr=composit['key'] if not orders.has_key(itemKeyStr): continue composit['orderedQuantity'] = orders[itemKeyStr] orderedPrice[i] = orderedPrice[i] + composit['price'] * int(orders[itemKeyStr]) actualComposits.append(composit) actualDayObject["menuItems"]=actualMenuItems actualDayObject["composits"]=actualComposits items.append(actualDayObject) actualCategoryObject["days"]=items menu.append(actualCategoryObject) days=[] totalPrice = 0 for i in range(0,5): actualDayObject={} actualDayObject["orderedPrice"] = orderedPrice[i] totalPrice = totalPrice + orderedPrice[i] actualDayObject["day"]=dayNames[i] actualDayObject["date"]=monday+datetime.timedelta(days=i) days.append(actualDayObject) # A single dish with editable ingredient list prevMonday=monday + datetime.timedelta(days=-7) nextMonday=monday + datetime.timedelta(days=7) template_values = { 'days':days, 'menu':menu, 'totalPrice':totalPrice } template_values['next'] = nextMonday template_values['prev'] = prevMonday # A single dish with editable ingredient list template = jinja_environment.get_template('templates/chefReviewOrders.html') self.printPage(str(day), template.render(template_values), True)