def get(self): email = get_user_email() if email and is_user_admin(): page_params = { 'user_email': email, 'orders': BeerOrder.get_completed_orders(), 'cancelledOrders': BeerOrder.get_cancelled_orders(), 'login_url': users.create_login_url('/home'), 'logout_url': users.create_logout_url('/home') } render_template(self, 'adminvieworders.html', page_params) else: self.redirect('/home')
def post(self): email = get_user_email() if not email: self.redirect(users.create_login_url('/account')) # query ndb to get the current user beerUser = BeerUser.get_user_profile(email) cart = beerUser.cart.contents address = self.request.get("addressTxt") beers_in_cart = [] if not address: render_template(self, "ordercomplete.html", {"msg":"Invalid delivery address!"}) return if len(cart) != 0: order_string = "" totalcost=0 # Build the order object and save it to the ndb new_order = BeerOrder() for beer in cart: ndb_beer = Beer.query(Beer.beerid == int(beer)).fetch(1)[0] totalcost += int(cart[beer]) * float(ndb_beer.price) quantity = cart[str(ndb_beer.beerid)] if quantity > 0: order_string += "{!s}x {!s}\n".format(quantity,ndb_beer.product) if totalcost > beerUser.balance: render_template(self, "ordercomplete.html", {"msg":"Insufficient funds."}) return new_order.items = order_string new_order.priceSum = totalcost new_order.address = address new_order.status = "Verifying" new_order.orderedBy = email new_order.put() # save the address for the user beerUser.address = address beerUser.balance = beerUser.balance - new_order.priceSum #clear their shopping cart beerUser.cart = ShoppingCart() beerUser.cart.price = "0.00" beerUser.cart.contents = {} beerUser.put() mail.send_mail('*****@*****.**', email, 'Order Verifying', 'You have successfully placed a beer order! Your order will be verified shortly and completed! Thanks!') render_template(self, "ordercomplete.html", {"msg":"Your order has been placed."}) else: render_template(self, "ordercomplete.html",{"msg":"Shopping cart is empty."})
def post(self): email = get_user_email() if email and is_user_admin(): # get params from post request data = json.loads(self.request.body) order = BeerOrder() order.items = data["items"] order.priceSum = float(data["priceSum"]) order.address = data["address"] order.status = "Verifying" order.orderedBy = data["orderedBy"] order.put() else: self.redirect('/home')
def get(self): email = get_user_email() if email and is_user_admin(): orders = BeerOrder.get_all_orders() page_params = { 'user_email': email, 'orders': orders, 'login_url': users.create_login_url('/home'), 'logout_url': users.create_logout_url('/home') } render_template(self, 'adminmanageorders_table.html', page_params)
def get(self): email = get_user_email() user_is_admin = is_user_admin() if email: # query ndb to get orders orders = BeerOrder.get_user_orders(email) page_params = { 'user_email': email, 'user_is_admin': user_is_admin, 'login_url': users.create_login_url('/home'), 'logout_url': users.create_logout_url('/home'), 'orders': orders } render_template(self, 'vieworders_table.html', page_params)
def get(self): # delete orders older than 90 days earliest = datetime.datetime.now() - datetime.timedelta(days=90) oldOrderKeys = BeerOrder.query(BeerOrder.timePlaced <= earliest).fetch(keys_only=True) for k in oldOrderKeys: k.delete()