示例#1
0
    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)
示例#2
0
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()
示例#3
0
文件: views.py 项目: 15779896112/mml
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)
示例#4
0
文件: views.py 项目: q894257739/mixin
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)
示例#5
0
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'))
示例#6
0
文件: views.py 项目: HelloCXD/axf
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)
示例#7
0
 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")
示例#8
0
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
    })
示例#9
0
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))
示例#10
0
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')
示例#11
0
文件: views.py 项目: GyokuShou/axf
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)
示例#12
0
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)
示例#13
0
文件: views.py 项目: buddysh/blshop
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)
示例#14
0
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)
示例#15
0
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)
示例#16
0
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)
示例#17
0
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)
示例#18
0
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()
示例#19
0
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'))
示例#20
0
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')
示例#22
0
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)
示例#23
0
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)
示例#24
0
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)
示例#25
0
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})
示例#26
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' })
示例#27
0
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)
示例#28
0
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)
示例#29
0
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)
示例#30
0
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))