def createWeekDb (weekDb): weekTotal = getOrderTotal([weekDb]) week={ 'key':str(weekDb.key()), 'user':str(weekDb.user.key()), 'monday':weekDb.monday, 'orderedComposits':weekDb.orderedComposits, 'orderedMenuItems':weekDb.orderedMenuItems, 'weekTotal':weekTotal } # TODO cache week total return week
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 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)