def test_foods_delete_food(self): user = User(email='*****@*****.**', username='******', password='******') user2 = User(email='*****@*****.**', username='******', password='******') cart = Cart() cart2 = Cart() food1 = FoodItem(name='food1', img_url="", nf_calories=Decimal(1), nf_total_fat=Decimal(2), nf_cholesterol=Decimal(3), nf_saturated_fat=Decimal(4), nf_sodium=Decimal(5), nf_total_carbohydrate=Decimal(6), nf_dietary_fiber=Decimal(7), nf_sugars=Decimal(8), nf_protein=Decimal(9), serving_qty=Decimal(1), serving_unit="Serving") food2 = FoodItem(name='food2', img_url="", nf_calories=Decimal(1), nf_total_fat=Decimal(2), nf_cholesterol=Decimal(3), nf_saturated_fat=Decimal(4), nf_sodium=Decimal(5), nf_total_carbohydrate=Decimal(6), nf_dietary_fiber=Decimal(7), nf_sugars=Decimal(8), nf_protein=Decimal(9), serving_qty=Decimal(1), serving_unit="Serving") food1.cart = cart food2.cart = cart2 cart.user = user cart2.user = user2 db.session.add_all([user, user2, cart, cart2, food1, food2]) db.session.commit() with self.client: self.client.post(url_for('auth.login'), data={ 'email': '*****@*****.**', 'username': '******', 'password': '******' }) # delete food self.client.get(url_for('foods.delete_food', id=1)) cart = current_user.carts.first() self.assertTrue(len(cart.foods.all()) == 0) # 404 error if food does not exist response1 = self.client.get(url_for('foods.delete_food', id=100)) self.assertTrue(response1.status_code == 404) # 403 error if food does not belong to user response2 = self.client.get(url_for('foods.delete_food', id=2)) self.assertTrue(response2.status_code == 403)
def extractAndPersistKartDetailsUsingSubquery(productId): user = User.query.filter(User.email == session['email']).first() userId = user.id subqury = Cart.query.filter(Cart.userid == userId).filter(Cart.productid == productId).subquery() qry = db.session.query(Cart.quantity).select_entity_from(subqury).all() if len(qry) == 0: cart = Cart(userid=userId, productid=productId, quantity=1) else: cart = Cart(userid=userId, productid=productId, quantity=qry[0][0] + 1) db.session.merge(cart) db.session.flush() db.session.commit()
def addcart(request): token = request.session.get('token') userid = cache.get(token) user = None if userid: user = User.objects.get(pk=userid) goodsid = request.GET.get('goodsid') goods = Goods.objects.get(pk=goodsid) cart = Cart() carts = Cart.objects.filter(goods=goods).filter(user=user) if carts.exists(): cart = carts.first() cart.number = int(cart.number) + int(request.GET.get('num')) cart.total = float(cart.goods.price[1:]) * int(cart.number) cart.save() else: cart.user = user cart.goods = goods cart.number = request.GET.get('num') cart.total = float(goods.price[1:]) * int(cart.number) cart.save() # 统计 carts = Cart.objects.filter(user=user) sum = 0 num = 0 for cart in carts: sum += float(cart.goods.price[1:]) * int(cart.number) num += cart.number data = {'status': 1, 'msg': '加入购物车成功!', 'num': num, "sum": sum} else: data = {'status': 0, 'msg': '未登录!'} return JsonResponse(data)
def addcart(request): goodsid = request.GET.get('goodsid') token = request.session.get('token') userid = cache.get(token) if userid: user = User.objects.get(pk=userid) goods = Goods.objects.get(id=goodsid) carts = Cart.objects.filter(user=user).filter(goods=goods) if carts.exists(): cart = carts.first() cart.number = cart.number + 1 cart.save() else: cart = Cart() cart.user = user cart.goods = goods cart.number = 1 cart.save() response_data = {'msg': '成功添加商品', 'status': 1, 'number': cart.number} else: response_data = {'msg': '未登录', 'status': -1} return JsonResponse(response_data)
def addBookCart(bookid): if request.method == 'POST': cart = Cart(current_user.id, bookid) db.session.add(cart) db.session.commit() flash('Book Successfully Added to cart', 'success') return redirect(url_for('cart'))
def addcart(request): goodsid = request.GET.get('goodsid') token = request.session.get('token') responseData = {'msg': '添加购物车成功', 'status': 1} if token: # 已登录 user = User.objects.get(token=token) goods = Goods.objects.get(pk=goodsid) # 判断商品是否在购物车中 carts = Cart.objects.filter(user=user).filter(goods=goods) if carts.exists(): cart = carts.first() cart.number = cart.number + 1 cart.save() responseData['number'] = cart.number else: cart = Cart() cart.user = user cart.goods = goods cart.number = 1 cart.save() responseData['number'] = cart.number return JsonResponse(responseData) else: # 未登录 responseData['msg'] = '请登录后操作' responseData['status'] = -1 return JsonResponse(responseData)
def setUp(self): ''' Set up method that will run before every Test ''' self.user_ = User(username = '******',password = '******', email = '*****@*****.**') self.new_cart = Cart(product='vegan pizza',size="large",user = self.user_Stan,amount="1000")
def change_item_qty(request): try: cart_id = request.session[ 'cart_id'] # Получение значения сессии при помощи ключа(то есть, 'cart_id'). cart = Cart.objects.get(id=cart_id) request.session['total'] = cart.items.count() except: cart = Cart() cart.save() cart_id = cart.id request.session['cart_id'] = cart_id # Передача значения в сессию cart = Cart.objects.get(id=cart_id) qty = request.GET.get('qty') item_id = request.GET.get('item_id') cart.change_qty(qty, item_id) cart_item = CartItem.objects.get(id=int(item_id)) cart_item.qty = int(qty) cart_item.item_total = int(qty) * Decimal(cart_item.product.price) cart_item.save() return JsonResponse({ 'cart_total': cart.items.count(), 'item_total': cart_item.item_total, 'cart_total_price': cart.cart_total })
def clone(id): cart = Cart.query.get_or_404(id) foods = cart.foods.all() # clone cart cart_copy = Cart() cart_copy.user = current_user for food in foods: food_copy = FoodItem(name=food.name, img_url=food.img_url, nf_calories=food.nf_calories, nf_total_fat=food.nf_total_fat, nf_saturated_fat=food.nf_saturated_fat, nf_cholesterol=food.nf_cholesterol, nf_sodium=food.nf_sodium, nf_total_carbohydrate=food.nf_total_carbohydrate, nf_dietary_fiber=food.nf_dietary_fiber, nf_sugars=food.nf_sugars, nf_protein=food.nf_protein, serving_unit=food.serving_unit, serving_qty=food.serving_qty) food_copy.cart = cart_copy db.session.add(food_copy) cart_copy.update_nutrients() db.session.add(cart_copy) db.session.commit() flash('Cart Has Been Cloned And Added To Your Carts') return redirect(url_for('carts.cart', id=cart_copy.id))
def add_to_cart(request): user = request.user product_id = request.GET.get('prod_id') product = Product.objects.get(id=product_id) data_for_cart = Cart(user=user, product=product) data_for_cart.save() return redirect('/show-cart')
def addcart(request): token = request.session.get('token') response_data = {} if token: userid = cache.get(token) user = User.objects.filter(pk=userid) if user.exists(): user = user.first() goodsid = request.GET.get('goodsid') good = Goods.objects.filter(pk=goodsid).first() cart = Cart.objects.filter(user=user).filter(goods=good) if cart.exists(): cart = cart.first() cart.number += 1 cart.save() else: cart = Cart() cart.user = user cart.goods = good cart.number = 1 cart.save() response_data['status'] = 1 response_data['num'] = cart.number return JsonResponse(response_data) response_data['status'] = -1 return JsonResponse(response_data)
def addcart(request): goodsid = request.GET.get('goodsid') goods = Goods.objects.get(pk=goodsid) print(goodsid) token = request.session.get('token') userid = cache.get(token) response_data = {} if userid: user = User.objects.get(pk=userid) carts = user.cart_set.filter(goods=goods).filter(user=user) response_data['status'] = 1 if carts: cart = carts.first() print('cart exist') cart.number = cart.number +1 cart.save() response_data['goodsnumber'] = cart.number return JsonResponse(response_data) else: print('cart is not exist') cart = Cart() cart.user = user cart.goods = goods cart.number = 1 cart.save() return JsonResponse(response_data) else: response_data['status'] = 0 return JsonResponse(response_data)
def addcart(request): token = request.session.get('token') userid = cache.get(token) goodsid = request.GET.get('goodsid') goodsnum = request.GET.get('goodsnum') # print(goodsid) response_data={ 'user':None, } if userid: user = User.objects.get(pk=userid) goods = Goods.objects.get(pk=goodsid) cart = Cart.objects.filter(goods=goods).filter(user=user) if cart.exists(): cart=cart.first() cart.num = cart.num + int(goodsnum) cart.save() else: cart=Cart() cart.goods=goods cart.user=user cart.num = int(goodsnum) cart.save() # response_data['user'] = user response_data['user_status'] = 1 response_data['cart_num']=cart.num # response_data['goodsid'] = goodsid else: response_data['user_status'] = 0 return JsonResponse(response_data)
def add_to_cart(request): product_id = request.POST.get('product_id') if request.user.is_authenticated == False: return redirect(f'/login/?redirect_to=/products/{product_id}/') product = Product.objects.get(pk=product_id) carts = Cart.objects.filter( user_id=request.user.id).order_by('-created_on') if carts.exists(): cart = carts[0] else: cart = Cart(user_id=request.user.id) cart.save() cartItems = cart.cartitem_set.filter(product_id=product_id) if cartItems.exists(): cartItem = cartItems[0] cartItem.quantity = cartItem.quantity + 1 cartItem.total = product.unit_price * cartItem.quantity else: cartItem = CartItem(cart=cart, product=product, quantity=1, unit_price=product.unit_price, total=product.unit_price * 1) cartItem.save() return redirect(product_detail, id=product_id)
def addcart(request): booksid=request.GET.get('booksid') token=request.session.get('token') print(booksid) data={} if token: user=User.objects.get(token=token) books = Books.objects.get(pk=booksid) carts=Cart.objects.filter(user=user).filter(books=books) if carts.exists(): cart=carts.first() cart.number=cart.number+1 cart.save() else: cart=Cart() cart.user=user cart.books=books cart.number=1 cart.save() return JsonResponse({'msg':'{},添加购物车成功'.format(books.productname),'number':cart.number,'status':1}) else: data['msg']="please login!" data['status']=-1 return JsonResponse(data)
def quicklybuy(request): token = request.session.get('token') response_data = {} if token: userid = cache.get(token) if userid: # 已经登录 user = User.objects.get(pk=userid) goodsid = request.GET.get('goodsid') num = int(request.GET.get('number1')) goods = Goods.objects.get(pk=goodsid) carts = Cart.objects.filter(user=user).filter(goods=goods) if carts.exists(): cart = carts.first() cart.number = cart.number + num cart.save() else: cart = Cart() cart.user = user cart.goods = goods cart.number = num cart.save() response_data['status'] = 1 response_data['number'] = cart.number response_data['msg'] = '添加 {} 购物车成功: {}'.format(cart.goods.productname, cart.number) return JsonResponse(response_data) response_data['status'] = -1 response_data['msg'] = '请登录后操作' return JsonResponse(response_data)
def addtocart(request): username = request.session.get('username') data = {'status': '200', 'msg': 'ok'} # ajax请求的,则返回的也是返回到ajax,判断用户是否登录 if not username: data['status'] = '302' data['msg'] = '用户未登录' return JsonResponse(data) # 获取到商品的id goodsid = request.GET.get('goodsid') # 找到对应的商品 goods = MarketGoods.objects.filter(pk=goodsid).first() user = User.objects.filter(u_name=username).first() # 从购物车里检索这个商品,如果有的话,数量加1,如果没有就新建一个 cart_item = Cart.objects.filter(c_user=user).filter(c_goods=goods).filter( c_belong=False).first() if not cart_item: cart_item = Cart() else: cart_item.c_num = cart_item.c_num + 1 cart_item.c_goods = goods cart_item.c_user = user cart_item.save() data['c_num'] = cart_item.c_num return JsonResponse(data)
def cart_update_server(): """ 更新终端中的购物车到服务器 :return: """ user: User = User.get_user_by_token(request.get_json().get('token')) items = request.get_json().get('items') items = list(items) try: sql = "DELETE FROM bao_cart WHERE cart_item_belong='{}';".format( user.user_id) result = db.session.execute(sql) for item in items: o = Cart() o.cart_id = item.get('id', 0) o.cart_item_id = item.get('item_id', 0) o.cart_sku_id = item.get('sn', 0) o.cart_sku_num = item.get('num', 0) o.cart_item_belong = user.user_id or 0 db.session.add(o) db.session.commit() except Exception as e: db.session.rollback() return CommonError.getError(errorCode=999) return responseSuccessHandler()
def addToCart(product_id, from_page): if current_user.is_anonymous: return redirect(url_for('login')) cart = Cart(user_id=current_user.id, product_id=product_id) db.session.add(cart) db.session.commit() return redirect(url_for('cart'))
def add_product_in_cart(request, product_id): product = Product.objects.get(id=product_id) new_item, _ = CartItem.objects.get_or_create(product=product, item_total=product.price) try: cart_id = request.session['cart_id'] cart = Cart.objects.get(id=cart_id) request.session['total'] = cart.items.count() except DoesNotExist: cart = Cart() cart.save() cart_id = cart.id request.session['cart_id'] = cart_id cart = Cart.objects.get(id=cart_id) if new_item not in cart.items.all(): cart.items.add(new_item) cart.save() return HttpResponseRedirect(reverse('index')) else: for cart_items in cart.items.all(): if cart_items.product == product: cart_items.qty += 1 cart_items.item_total += cart_items.item_total cart_items.save() return HttpResponseRedirect(reverse('index'))
def AddToCart(ProductID): # 1. Get current User's ID to add product in particular user's cart. # 2. Get ProductID as a parameter. # 3. Add new entry in Cart table with above UserID and ProductID. # 4. Commit database after above entry. uid = current_user.get_id() CartObject = Cart(user_id=uid, product_id=ProductID) db.session.add(CartObject) db.session.commit() print("ProductID: ", ProductID) # For now: OPTION 1 # 5. call GetPredictedProducts() and calculate runtime r1 # 6. call GetSimilarProducts() and calculate runtime r2 # 7. call GetComplementaryProducts() and calculate runtime r3 # 8. call GetRecipeRecommendations() and calculate runtime r4 # 9. Display result on terminal along with runtime (r1+r2, r1+r3, r1+r4) # Ideally, one of the function will be called out of step 6, 7, 8 # according to the tab selected by the user in recommendatioin part of the page # and view will be updated with the new recommendations NextBuyProducts = GetPredictedProducts() return redirect('/Home')
def cart(request): try: cart_id = request.session['cart_id'] cart = Cart.objects.get(id=cart_id) request.session['total'] = cart.items.count() except DoesNotExist: cart = Cart() cart.save() cart_id = cart.id request.session['cart_id'] = cart_id cart = Cart.objects.get(id=cart_id) template = 'cart.html' if request.method == 'POST': new_order = Order() new_order.user = request.user new_order.total = cart.cart_total new_order.save() for item in cart.items.all(): cart.items.remove(item) cart.save() return render(request, template) new_cart_total = 0 for item in cart.items.all(): new_cart_total += item.item_total cart.cart_total = new_cart_total cart.save() context = { 'cart': cart } return render(request, template, context)
def addgoods(request): token = request.session.get('token') response_data = {} if token: userid = cache.get(token) if userid: user = User.objects.get(pk=userid) goodsid = request.GET.get('goodsid') goodsnum = int(request.GET.get('goodsNum')) goods = GOODs.objects.get(pk=goodsid) # 判断需要添加的商品是否已经存在 carts = Cart.objects.filter(user=user).filter(goods=goods) if carts.exists(): cart = carts.first() cart.number += goodsnum cart.save() else: cart = Cart() cart.user = user cart.goods = goods cart.number = goodsnum cart.save() response_data['status'] = 1 response_data['number'] = cart.number response_data['msg'] = '添加{}购物车成功:{}'.format( cart.goods.productlongname, cart.number) return JsonResponse(response_data) response_data['status'] = -1 response_data['msg'] = '请登录后操作' return JsonResponse(response_data)
def addcart(request): #获取token token = request.session.get('token') #响应数据 response_data = {} # 缓存 if token: userid = cache.get(token) if userid: user = User.objects.get(pk=userid) goodsid = request.GET.get('goodsid') goods = Goods.objects.get(pk=goodsid) carts = Cart.objects.filter(user=user).filter(goods=goods) if carts.exists(): cart = carts.first() cart.number = cart.number + 1 cart.save() else: cart = Cart() cart.user = user cart.goods = goods cart.number = 1 cart.save() response_data['status'] = 1 response_data['number'] = cart.number response_data['msg'] = '添加{} 购物车成功,数量为:{}'.format( cart.goods.productlongname, cart.number) return JsonResponse(response_data) response_data['status'] = -1 response_data['msg'] = '请登录后操作' return JsonResponse(response_data)
def add_cart(request): token = request.session.get('token') userid = cache.get(token) goodsid = request.GET.get('goodsid') number = int(request.GET.get('number')) print(number) if userid: user = User.objects.get(pk=userid) goods = Goods.objects.get(pk=goodsid) cart = Cart.objects.filter(user=user).filter(goods=goods) if cart.exists(): cart = cart.first() cart.number = cart.number + number cart.save() else: cart = Cart() cart.user = user cart.goods = goods cart.number = number cart.save() return JsonResponse({'msg': '{}-添加购物车成功,数量为-{}'.format(cart.goods.name, cart.number), 'status': 1}) else: return JsonResponse({'msg': '请先登录,后操作', 'status': 0})
def add(): try: # get headers first name = request.headers.get('name') price = request.headers.get('price') description = request.headers.get('description') image_url = request.headers.get('image_url') product_id = request.headers.get('product_id') # different combinations of data will be provided # depending on whether a product is being added to the inventory or an item is being added to the cart # must follow either of these patterns if product_id and not name and not price and not description and not image_url: cart = Cart(product_id=product_id) db.session.add(cart) db.session.commit() return jsonify({ 'success': 'Added item to cart' }) elif name and price and description and image_url and not product_id: product = Product(name=name, price=price, description=description, image_url=image_url) db.session.add(product) db.session.commit() return jsonify({ 'success': 'Added product to inventory' }) else: return jsonify({ 'error': 'Error #001: Invalid parameters' }) except: return jsonify({ 'error': 'Error #002: Could not add item/product' })
def addCart(request): gid = request.GET.get('gid') #获取用户是否登录 uid = request.session.get('uid') data = { 'code': 0, 'msg': 'ok', } if not uid: # 用户未登录 data['code'] = '-1' #用户未登录 data['msg'] = '用户未登录' else: # 查询购物车中是否由该商品,如果有,数量加1 carts = Cart.objects.filter(goods_id=gid).filter(user_id=uid) if carts.exists(): cart = carts.first() cart.num += 1 else: # 没有则创建 cart = Cart() cart.user_id = uid cart.goods_id = gid cart.num += 1 cart.save() data['num'] = cart.num return JsonResponse(data)
def addcart(request): token = request.session.get('token') # 响应数据 response_data = {} if token: userid = cache.get(token) if userid: # 已经登录 user = User.objects.get(pk=userid) goodsid = request.GET.get('goodsid') goods = Goods.objects.get(pk=goodsid) number = request.GET.get('number') print(number) # 商品不存在: 添加新记录 # 商品存在: 修改number carts = Cart.objects.filter(user=user).filter(goods=goods) cart = Cart() cart.user = user cart.goods = goods cart.number = number cart.save() response_data = '添加 {} 购物车成功: {}'.format(cart.goods, cart.number) return JsonResponse(response_data)
def addcart(request): token = request.session.get('token') goodsid = request.GET.get('goodsid') data = {} if token: user = User.objects.get(token=token) goods = Goods.objects.get(pk=goodsid) carts = Cart.objects.filter(user=user).filter(goods=goods) if carts.exists(): cart = carts.first() cart.number = cart.number + 1 cart.save() else: cart = Cart() cart.user = user cart.goods = goods cart.number = 1 cart.save() return JsonResponse({ 'msg': '{},添加购物车成功'.format(goods.productlongname), 'number': cart.number, 'status': 1 }) else: data['msg'] = '请登录后操作!' data['status'] = -1 return JsonResponse(data)
def add_to_cart(item_id): #item_id = request.args.get('item_id') cart_item = Cart(user_id=current_user.id, item_id=item_id) db.session.add(cart_item) db.session.commit() flash(u'Pozycja dodana do koszyka!', 'success') return redirect(url_for('item.index', item_id=item_id))