def get(self): if(not isUserAdmin(self)): self.session[LOGIN_NEXT_PAGE_KEY] = self.URL self.redirect("/") return monday = getMonday(getFormDate(self)) prevMonday=monday + datetime.timedelta(days=-7) nextMonday=monday + datetime.timedelta(days=7) days=[] books = Books.all().filter("monday = ", monday); weeklyIncome = books.get() if weeklyIncome == None: weeklyIncome = Books() for i in range(0,5): actualDayObject={} actualDate=monday+datetime.timedelta(days=i) actualDayObject["day"] = dayNames[i] actualDayObject["index"] = i actualDayObject["date"] = actualDate days.append(actualDayObject) days[0]['total'] = weeklyIncome.mondayIncome days[1]['total'] = weeklyIncome.tuesdayIncome days[2]['total'] = weeklyIncome.wednesdayIncome days[3]['total'] = weeklyIncome.thursdayIncome days[4]['total'] = weeklyIncome.fridayIncome template_values={ 'days': days, 'monday':monday, 'prev':prevMonday, 'next':nextMonday } template = jinja_environment.get_template('templates/admin/weeklyFacebookVisits.html') self.printPage("Facebook", template.render(template_values), False, False)
def get(self): if not isUserCook(self): self.redirect("/") return day = getBaseDate(self) #Organize into days menu=[] dishCategories=getDishCategories() monday = getMonday(day) days=[] for i in range(0,5): actualDay=monday+datetime.timedelta(days=i) days.append(getDay(actualDay, i, getDaysAvailableMenuItems(actualDay))) for category in dishCategories: if not category['canBeTopLevel']: continue actualCategoryObject={} actualCategoryObject['category']=category categoryKey=category['key'] dishes = getCategoryWithDishes(category['key'])['dishes'] availableDishes=sorted(dishes, key=lambda dish: dish['title']) actualCategoryObject['availableDishes']=availableDishes items=[] for i in range(0,5): actualDay=monday+datetime.timedelta(days=i) items.append(getDaysItemsForCategory(categoryKey, actualDay, i, days[i]["availableMenuItems"])) actualCategoryObject["days"]=items menu.append(actualCategoryObject) # 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) allDishes=getDishes() template_values = { 'days':days, 'prev':prevMonday, 'next':nextMonday, 'actual':actualMonday, 'menu':menu, 'allDishes':allDishes } template = jinja_environment.get_template('templates/menuEdit.html') self.printPage(str(day), template.render(template_values), False, False)
def get(self): if not isUserDelivery(self): self.session[LOGIN_NEXT_PAGE_KEY] = self.URL self.redirect("/") return day=getBaseDate(self) calendar=day.isocalendar() #Organize into days dayTotal = 0 dayCount = 0 dayQuantity = 0 dayObject={} dayObject["day"]=dayNames[calendar[2]-1] dayObject["date"]=day prevDay=day+datetime.timedelta(days=-1) nextDay=day+datetime.timedelta(days=1) today=datetime.date.today() monday = getMonday(day) weeks = UserWeekOrder.all().filter('monday = ', monday) deliveries = [] for week in weeks: dailyUserTotal = 0 items = getOrderedItemsFromWeekData([week], day) if len(items) > 0: for item in items: dayTotal = dayTotal + item['orderedQuantity'] * item['price'] dailyUserTotal = dailyUserTotal + item['orderedQuantity'] * item['price'] orderAddress = getOrderAddress(week, day) if orderAddress == None: orderAddress = week.user.addresses.get(0) orderAddress.comment = getOrderComment(week, day) orderAddress.orderedItems = items orderAddress.week = week orderAddress.dailyUserTotal = dailyUserTotal orderAddress.dailyUserDelivery = getZipBasedDeliveryCost(orderAddress.zipNumCode, dailyUserTotal) orderAddress.todayPaid = getPaid(week, day) orderAddress.weeklyPaid = getWeeklyPaid(week) orderAddress.weeklyTotal = getOrderTotal([week]) orderAddress.weeklyDelivery = getWeeklyDelivery(week) deliveries.append(orderAddress) sortedDeliveries = sorted(deliveries, key=lambda item:item.zipNumCode) template_values = { 'next':nextDay, 'actual':today, 'orders':sortedDeliveries, 'day':dayObject, 'dayTotal': dayTotal, } template_values['prev'] = prevDay template = jinja_environment.get_template('templates/deliveryReviewOrders.html') self.printPage(str(day), template.render(template_values), False, False)
def post(self): monday = getMonday(getFormDate(self)) books = Books.all().filter("monday = ", monday); weeklyIncome = books.get() if weeklyIncome == None: weeklyIncome = Books() weeklyIncome.monday = monday weeklyIncome.mondayIncome = int(self.request.get("value_0")) weeklyIncome.tuesdayIncome = int(self.request.get("value_1")) weeklyIncome.wednesdayIncome = int(self.request.get("value_2")) weeklyIncome.thursdayIncome = int(self.request.get("value_3")) weeklyIncome.fridayIncome = int(self.request.get("value_4")) weeklyIncome.put() self.redirect(self.URL +"?" + FORM_DAY +"=" + str(monday))
def get(self): if not isUserAdmin(self): self.session[LOGIN_NEXT_PAGE_KEY] = self.URL self.redirect("/") return users = getUsers() allUsers = [] today=datetime.date.today() monday = getMonday(today) maxWeeks = 20 weekTotals = [] for i in range(0, maxWeeks): weekTotalITem = { 'total' : 0, 'monday' : monday + datetime.timedelta(days = (i - maxWeeks + 2) * 7) } weekTotals.append(weekTotalITem) for user in users: orderTotal = 0 computedWeeks = [] for i in range(0, maxWeeks): actualMonday = monday + datetime.timedelta(days = (i - maxWeeks + 2) * 7) week = getUserWeekForDay(user['key'], actualMonday) if week != None: weekTotals[i]['total'] = weekTotals[i]['total'] + week['weekTotal'] computedWeek = { 'itemPrice': week['weekTotal'], 'userKey':user['key'], 'monday': actualMonday, } orderTotal = orderTotal + week['weekTotal'] else: computedWeek = {'itemPrice': 0} computedWeeks.append(computedWeek) user['computedWeeks'] = computedWeeks user['orderTotal'] = orderTotal allUsers.append(user) orderedUsers = sorted(allUsers, key=lambda item:item['orderTotal'], reverse=True) template_values = { 'users':orderedUsers, 'weekTotals':weekTotals } template = jinja_environment.get_template('templates/admin/users.html') self.printPage("Rendelések", template.render(template_values), False, False)
def get(self): if not isUserAdmin(self): self.session[LOGIN_NEXT_PAGE_KEY] = self.URL self.redirect("/") return users = User.all() allUsers = [] today=datetime.date.today() monday = getMonday(today) maxWeeks = 20 weekTotals = [] for i in range(0, maxWeeks): weekTotalITem = { 'total' : 0, 'monday' : monday + datetime.timedelta(days = (i - maxWeeks + 1) * 7) } weekTotals.append(weekTotalITem) for user in users: orderTotal = 0 computedWeeks = [] for i in range(0, maxWeeks): actualMonday = monday + datetime.timedelta(days = (i - maxWeeks + 1) * 7) weeks = user.weeks.filter("monday = ", actualMonday) if (weeks.count() > 0): weekTotal = getOrderTotal(weeks) weekTotals[i]['total'] = weekTotals[i]['total'] + weekTotal computedWeek = { 'itemPrice': weekTotal, 'userKey':user.key(), 'monday': actualMonday, } orderTotal = orderTotal + weekTotal else: computedWeek = {'itemPrice': 0} computedWeeks.append(computedWeek) user.computedWeeks = computedWeeks user.orderTotal = orderTotal allUsers.append(user) orderedUsers = sorted(allUsers, key=lambda item:item.orderTotal, reverse=True) template_values = { 'users':orderedUsers, 'weekTotals':weekTotals } template = jinja_environment.get_template('templates/admin/everyUsersOrder.html') self.printPage("Rendelések", template.render(template_values), False, False)
def post(self): if(not isUserLoggedIn(self)): self.redirect("/registration") return userKey = self.session.get(USER_KEY,None) user=None if (userKey != None): user = User.get(userKey) addresses = user.addresses.filter("active = ", True) if addresses.count()==0: template = jinja_environment.get_template('templates/no_address.html') self.printPage('Rendelesek', template.render(), True) return actualOrder = self.session.get(ACTUAL_ORDER,{}) firstOrderableDay = getFirstOrderableDate(self) orderTotal = 0 orderedItems = [] if (len(actualOrder) > 0): # Organize actual order into weeks ordersInWeeks = {} # A map holding ordered items with ordered quantiy for orderKey in actualOrder.keys(): orderItemCount = int(actualOrder[orderKey]) if (orderItemCount != 0): item = db.get(orderKey) day = item.day if day < firstOrderableDay: continue monday = getMonday(day) if ordersInWeeks.has_key(monday): weekHolder = ordersInWeeks.get(monday) else: weekHolder = [] orderItem = { 'key' : orderKey, 'quantity' : orderItemCount } weekHolder.append(orderItem) ordersInWeeks[monday] = weekHolder # Go through order week by week if len(ordersInWeeks) > 0: orderedItemsForMail = {} for monday in ordersInWeeks.keys(): weekHolder = ordersInWeeks.get(monday) alreadyOrdered = getUserOrdersForWeek(user, monday) # Merge orders for the week for item in weekHolder: orderedQuantity = item['quantity'] orderItemKey = item['key'] # Order should not remove more items than already ordered if alreadyOrdered.has_key(orderItemKey): alreadyOrderedQuantity = alreadyOrdered.get(orderItemKey) if alreadyOrderedQuantity + orderedQuantity < 0: orderedQuantity = 0 - alreadyOrderedQuantity if isMenuItem(orderItemKey): menuItem = getMenuItem(orderItemKey) day = menuItem['day'] menuItem['quantity'] = orderedQuantity menuItem['totalPrice'] = orderedQuantity * menuItem['price'] menuItem['isMenuItem'] = True orderTotal = orderTotal + orderedQuantity * menuItem['price'] orderedItems.append(str(day) + " " + str(orderItemKey) + " " + str(orderedQuantity) + " " + str(menuItem['price'])) if orderedItemsForMail.has_key(day): daysItems = orderedItemsForMail.get(day) daysItems.append(menuItem) else: daysItems = [] daysItems.append(menuItem) orderedItemsForMail[day] = daysItems else: composit = getComposit(orderItemKey) day = composit['day'] composit['quantity'] = orderedQuantity composit['totalPrice'] = orderedQuantity * composit['price'] composit['isMenuItem'] = False orderTotal = orderTotal + orderedQuantity * composit['price'] orderedItems.append(str(day) + " " + str(orderItemKey) + " " + str(orderedQuantity) + " " + str(composit['price'])) if orderedItemsForMail.has_key(day): daysItems = orderedItemsForMail.get(day) daysItems.append(composit) else: daysItems = [] daysItems.append(composit) orderedItemsForMail[day] = daysItems if alreadyOrdered.has_key(orderItemKey): orderedQuantity = orderedQuantity + alreadyOrdered.get(orderItemKey) if (orderedQuantity > 0): alreadyOrdered[orderItemKey] = orderedQuantity else: alreadyOrdered.pop(orderItemKey, 0) # Add stuff to the first week the user created daysForMail = orderedItemsForMail.keys() sortedDays = sorted(daysForMail) sortedItemsForMail = [] for day in sortedDays: sortedItemsForMail.append( {'day':day, 'orders':orderedItemsForMail.get(day)} ) weeks = user.weeks.filter("monday = ", monday) if (weeks.count() > 0): week = weeks.get() else: week = UserWeekOrder() week = UserWeekOrder() week.user = user week.monday = monday # Add address for every day defaultAddress = user.addresses.filter("active = ", True).get() week.mondayAddress = defaultAddress week.tuesdayAddress = defaultAddress week.wednesdayAddress = defaultAddress week.thursdayAddress = defaultAddress week.fridayAddress = defaultAddress week.saturdayAddress = defaultAddress week.sundayAddress = defaultAddress orderedMenuItems = [] orderedComposits = [] for itemKey in alreadyOrdered.keys(): newItem = str(alreadyOrdered.get(itemKey)) + " " + itemKey if isMenuItem(itemKey): orderedMenuItems.append(newItem) else: orderedComposits.append(newItem) week.orderedMenuItems = orderedMenuItems week.orderedComposits = orderedComposits week.put() user.lastOrder = datetime.datetime.now(timeZone).date() user.lastOrderFlag = True user.put() updateUser(user) template_values = { "user":user, 'userOrder':sortedItemsForMail, } logInfo(self, self.URL, "ORDER_POSTED") event = UserOrderEvent() event.orderDate = datetime.datetime.now(timeZone) event.user = user event.price = orderTotal event.orderedItems = orderedItems event.put() # Send email notification to the user messageTxtTemplate = jinja_environment.get_template('templates/orderNotificationMail.txt') messageHtmlTemplate = jinja_environment.get_template('templates/orderNotificationMail.html') message = mail.EmailMessage(sender="Diet Futar <*****@*****.**>") message.subject="Diet-futar, rendeles visszaigazolasa" message.to = user.email message.bcc = "*****@*****.**" message.body = messageTxtTemplate.render(template_values) message.html = messageHtmlTemplate.render(template_values) message.send() self.session[ACTUAL_ORDER]={} #self.response.out.write(messageTemplate.render(template_values)); self.redirect("/personalMenu") else: print "Error #100: Can't process orders." else: print "Error #100: Can't process orders."
def post(self): # Get addresses and comments and save them to the proper day # Works only for a singe week view if(not isUserLoggedIn(self)): self.redirect("/") return firstOrderableDay=getFirstOrderableDate(self); week = None for field in self.request.arguments(): if ((field[:8]=="address_") or (field[:8]=="comment_")): day=datetime.datetime.strptime(field[8:], "%Y-%m-%d").date() if day < firstOrderableDay: continue if week == None: user = getUser(self) monday = getMonday(day) weeks = user.weeks.filter("monday = ", monday) if weeks.count() == 1: week = weeks.get() # If no week was determined, continue, nothing to save here if week == None: continue if field[:8]=="address_": address=Address.get(self.request.get(field)) if day.weekday() == 0: week.mondayAddress = address elif day.weekday() == 1: week.tuesdayAddress = address elif day.weekday() == 2: week.wednesdayAddress = address elif day.weekday() == 3: week.thursdayAddress = address elif day.weekday() == 4: week.fridayAddress = address elif day.weekday() == 5: week.saturdayAddress = address elif day.weekday() == 6: week.sundayAddress = address if (field[:8]=="comment_"): comment = self.request.get(field) if day.weekday() == 0: week.mondayComment = comment elif day.weekday() == 1: week.tuesdayComment = comment elif day.weekday() == 2: week.wednesdayComment = comment elif day.weekday() == 3: week.thursdayComment = comment elif day.weekday() == 4: week.fridayComment = comment elif day.weekday() == 5: week.saturdayComment = comment elif day.weekday() == 6: week.sundayComment = comment if week != None: week.put() logInfo(self, self.URL, "MODIFY_ADDRESS_ON_PERSONAL_MENU") self.redirect("/personalMenu")
def get(self): if(not isUserLoggedIn(self)): self.redirect("/") return day = getOrderBaseDate(self) monday = getMonday(day) firstOrderableDay = getFirstOrderableDate(self); user = getUser(self) weeks = user.weeks.filter("monday = ", monday) days=[] for i in range(0,5): actualDayObject={} orderedPrice = 0 actualDay=monday+datetime.timedelta(days=i) if actualDay < firstOrderableDay: actualDayObject["changable"] = False else: actualDayObject["changable"] = True daysOrderItems = getOrderedItemsFromWeekData(weeks, actualDay) actualDayObject['orderedItems'] = daysOrderItems for orderedItem in daysOrderItems: try: orderedPrice = orderedPrice + orderedItem['price'] * orderedItem['orderedQuantity'] except: pass actualDayObject['day']=dayNames[i] actualDayObject['date'] = actualDay actualDayObject["orderedPrice"] = orderedPrice if daysOrderItems != None and len(daysOrderItems)>0: if (weeks.count() > 0): week = weeks.get() else: week = UserWeekOrder() address = getOrderAddress(week, actualDay) comment = getOrderComment(week, actualDay) if address == None: address = user.addresses.get() actualDayObject['address'] = address actualDayObject['comment'] = comment actualDayObject["deliveryCost"] = getZipBasedDeliveryCost(address.zipNumCode, orderedPrice) 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) availableAddresses = [] for address in user.addresses: address.deliveryCost = getZipBasedDeliveryCost(address.zipNumCode, 0) address.deliveryLimit = getZipBasedDeliveryLimit(address.zipNumCode) availableAddresses.append(address) template_values = { 'days':days, 'addresses':availableAddresses, } 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/reviewOrderedMenu.html') logInfo(self, self.URL, "REVIEW_PERSONAL_MENU") self.printPage(str(day), template.render(template_values), False, True)
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): actualOrder=self.session.get(ACTUAL_ORDER,{}) day=getBasketBaseDate(actualOrder, self) monday = getMonday(day) if (len(actualOrder) > 0): orderedMenuItemKeys=[] for key in actualOrder.keys(): orderedMenuItemKeys.append(key) mayBeNullOrderedItems=db.get(orderedMenuItemKeys) orderedItems=[] composits=[] for item in mayBeNullOrderedItems: if item != None: if type(item) == MenuItem: orderedItems.append(item) else: composits.append(item) userOrders={} userKey = self.session.get(USER_KEY,None) if (userKey != None): user = User.get(userKey) #Organize into days menu=[] actualOrder=self.session.get(ACTUAL_ORDER,[]) dishCategories=getDishCategories() dayTotal = [0,0,0,0,0] menuItems=sorted(orderedItems, key=lambda item:item.dish.title) for category in dishCategories: actualCategoryObject={} actualCategoryObject['category']=category items=[] orderedPrice=[0,0,0,0,0,0,0] itemsInRows=0 for i in range(0,5): actualDay=monday+datetime.timedelta(days=i) actualDayObject={} actualDayObject["day"]=dayNames[i] actualDayObject["date"]=actualDay #Filter menu items actualMenuItems=[] actualComposits=[] for menuItem in menuItems: try: menuItem.dish.category except ReferencePropertyResolveError: continue if str(menuItem.dish.category.key())==category['key'] and menuItem.day==actualDay: try: if (actualOrder!=None) and (str(menuItem.key()) in actualOrder) and int(actualOrder[str(menuItem.key())]) != 0: # Create an object to append to the UI menuItemObject = getMenuItem(str(menuItem.key())) menuItemObject['inCurrentOrder']=actualOrder[menuItemObject['key']] try: menuItemObject['basketprice'] = int(menuItemObject['inCurrentOrder']) * menuItemObject['price'] except TypeError: menuItemObject['basketprice'] = 0 try: menuItemObject['orderedQuantity'] = userOrders[menuItemObject['key']] try: orderedPrice[i] = orderedPrice[i] + menuItem['price'] * int(userOrders[menuItemObject['key']]) except: pass except: menuItemObject['orderedQuantity'] = 0 dayTotal[i] = dayTotal[i] + menuItemObject['basketprice'] menuItemObject['orderable']=True actualMenuItems.append(menuItemObject) itemsInRows=itemsInRows+1 except ValueError: pass for composit in composits: if str(composit.category.key())==category['key'] and composit.day==actualDay: try: if (actualOrder!=None) and (str(composit.key()) in actualOrder) and int(actualOrder[str(composit.key())]) != 0: # Create an object to append to the UI compositObject = getComposit(str(composit.key())) compositObject['inCurrentOrder']=actualOrder[compositObject['key']] try: compositObject['basketprice'] = int(compositObject['inCurrentOrder']) * compositObject['price'] except TypeError: compositObject['basketprice'] = 0 dayTotal[i] = dayTotal[i] + compositObject['basketprice'] compositObject['orderable']=True try: compositObject['orderedQuantity'] = userOrders[compositObject['key']] try: orderedPrice[i] = orderedPrice[i] + menuItem['price'] * int(userOrders[compositObject['key']]) except: pass except: compositObject['orderedQuantity'] = 0 actualComposits.append(compositObject) itemsInRows=itemsInRows+1 except ValueError: pass actualDayObject["menuItems"]=actualMenuItems actualDayObject["composits"]=actualComposits items.append(actualDayObject) actualCategoryObject["days"]=items if (itemsInRows > 0): menu.append(actualCategoryObject) days=[] # Adds header information user = getUser(self) for i in range(0,5): actualDayObject={} actualDate=monday+datetime.timedelta(days=i) actualDayObject["day"] = dayNames[i] actualDayObject["date"] = actualDate actualDayObject["total"] = dayTotal[i] days.append(actualDayObject) # Add addresses # 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, 'user':user, '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/reviewPendingOrder.html') self.printPage(str(day), template.render(template_values), True) else: template = jinja_environment.get_template('templates/noOrder.html') logInfo(self, self.URL, "DISPLAY_BASKET") self.printPage(None, template.render(), 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)
def get(self): if not isUserAdmin(self): self.session[LOGIN_NEXT_PAGE_KEY] = self.URL self.redirect("/") return today=datetime.date.today() monday = getMonday(today) maxWeeks = 20 weekTotals = [] daysOfWeek = [ {'name':dayNames[0], 'dailyTotals':[]}, {'name':dayNames[1], 'dailyTotals':[]}, {'name':dayNames[2], 'dailyTotals':[]}, {'name':dayNames[3], 'dailyTotals':[]}, {'name':dayNames[4], 'dailyTotals':[]}, ] for i in range(0, maxWeeks): weekTotal = 0 actualMonday = monday + datetime.timedelta(days = (i - maxWeeks + 2) * 7) books = Books.all().filter("monday = ", actualMonday) weeklyIncome = books.get() if weeklyIncome == None: weeklyIncome = Books() daysOfWeek[0]['dailyTotals'].append(weeklyIncome.mondayIncome) weekTotal = weekTotal + weeklyIncome.mondayIncome daysOfWeek[1]['dailyTotals'].append(weeklyIncome.tuesdayIncome) weekTotal = weekTotal + weeklyIncome.tuesdayIncome daysOfWeek[2]['dailyTotals'].append(weeklyIncome.wednesdayIncome) weekTotal = weekTotal + weeklyIncome.wednesdayIncome daysOfWeek[3]['dailyTotals'].append(weeklyIncome.thursdayIncome) weekTotal = weekTotal + weeklyIncome.thursdayIncome daysOfWeek[4]['dailyTotals'].append(weeklyIncome.fridayIncome) weekTotal = weekTotal + weeklyIncome.fridayIncome weekTotalITem = { 'total' : weekTotal, 'monday' : actualMonday } weekTotals.append(weekTotalITem) template_values = { 'weekTotals':weekTotals, 'daysOfWeek' : daysOfWeek } template = jinja_environment.get_template('templates/admin/weeklyFacebookVisitsOverview.html') self.printPage("Facebook", template.render(template_values), False, False)