def login(request): if request.method == 'POST': email = request.POST['email'] password = request.POST['password'] user = auth.authenticate(email=email, password=password) if user is not None: try: cart = Cart.objects.get(cart_id=_cart_id(request)) is_cart_item_exists = CartItem.objects.filter( cart=cart).exists() if is_cart_item_exists: cart_item = CartItem.objects.filter(cart=cart) #get the items by cart id product_variation = [] for item in cart_item: variation = item.variations.all() product_variation.append(list(variation)) #get the cart item from user to access his product variation cart_item = CartItem.objects.filter(user=user) ex_var_list = [] id = [] for item in cart_item: existing_variation = item.variations.all() ex_var_list.append(list(existing_variation)) id.append(item.id) for pr in product_variation: if pr in ex_var_list: index = ex_var_list.index(pr) item_id = id[index] item = CartItem.objects.get(id=item_id) item.quantity += 1 item.user = user item.save() else: cart_item = CartItem.objects.filter(cart=cart) for item in cart_item: item.user = user item.save() #for item in cart_item: # item.user = user # item.save() except: pass auth.login(request, user) messages.success(request, 'You are logged in.') url = request.META.get('HTTP_REFERER') try: query = requests.utils.urlparse(url).query # next=/cart/checkout/ params = dict(x.split('=') for x in query.split('&')) if 'next' in params: nextPage = params['next'] return redirect(nextPage) except: return redirect('dashboard') else: messages.error(request, 'Username or Password not invalid') return redirect('login') return render(request, 'accounts/login.html')
def product_detail(request, category_slug, product_slug): try: single_product = Product.objects.get(category__slug=category_slug, slug=product_slug) in_cart = CartItem.objects.filter(cart__cart_id=_cart_id(request), product=single_product).exists() except Exception as e: raise e if request.user.is_authenticated: try: orderproduct = OrderProduct.objects.filter( user=request.user, product_id=single_product.id).exists() except OrderProduct.DoesNotExist: orderproduct = None else: orderproduct = None # Get the reviews reviews = ReviewRating.objects.filter(product_id=single_product.id, status=True) # Get the product gallery product_gallery = ProductGallery.objects.filter( product_id=single_product.id) context = { 'single_product': single_product, 'in_cart': in_cart, 'orderproduct': orderproduct, 'reviews': reviews, 'product_gallery': product_gallery, } return render(request, 'store/product_detail.html', context)
def product_detail(request, category_slug, product_slug): try: # get always return the single objects values # __ refer to fields associated with the foreign key for the next pages # here catgory is product fields but category is the f`orign key which has slug fileds single_product = Product.objects.get( category__slug=category_slug, slug=product_slug) in_cart = CartItem.objects.filter(cart__cart_id=_cart_id( request), product=single_product).exists() except Exception as e: raise e if request.user.is_authenticated: try: orderproduct = OrderProduct.objects.filter( user=request.user, product_id=single_product.id).exists() except OrderProduct.DoesNotExist: orderproduct = None else: orderproduct = None # Get the reviews reviews = ReviewRating.objects.filter( product_id=single_product.id, status=True) context = { 'single_product': single_product, 'in_cart': in_cart, 'orderproduct': orderproduct, 'reviews': reviews, } return render(request, 'store/product_detail.html', context)
def login(request): if request.method == "POST": email = request.POST['email'] password = request.POST['password'] user = auth.authenticate(email=email, password=password) if user is not None: try: cart = Cart.objects.get(cart_id=_cart_id(request)) is_cart_item_exists = CartItem.objects.filter( cart=cart).exists() if is_cart_item_exists: cart_item = CartItem.objects.filter(cart=carts) for item in cart_item: item.user = user item.save() except: pass auth.login(request, user) messages.success(request, 'You are now logged in.') return redirect('dashboard') else: messages.error(request, 'Invalid credentials') return redirect('login') return render(request, 'accounts/login.html')
def course_details(request, category_slug, course_slug): single_course = Course.objects.get(category__slug = category_slug, slug=course_slug) in_cart = CartItem.objects.filter(cart__cart_id = _cart_id(request), course = single_course).exists() context = { 'single_course' : single_course, 'in_cart' : in_cart } return render(request,'store/course_details.html',context)
def product_detail(request, category_slug, product_slug): try: single_product = Product.objects.get(category__slug=category_slug, slug=product_slug) in_cart = CartItem.objects.filter(cart__cart_id=_cart_id(request), product=single_product).exists() except Exception as e: # -*- coding: utf-8 -*- raise e context = { 'single_product': single_product, 'in_cart' : in_cart, } return render(request, 'store/product_detail.html', context)
def login(request): if request.method == 'POST': email = request.POST['email'] password = request.POST['password'] user = auth.authenticate(email=email, password=password) if user is not None: try: cart = Cart.objects.get(cart_id=_cart_id(request)) is_cart_item_exists = CartItem.objects.filter( cart=cart).exists() if is_cart_item_exists: cart_item = CartItem.objects.filter(user=user) cart_item_id = [] for item in cart_item: cart_item_id.append(item.id) for id in cart_item_id: index = cart_item_id.index(id) item_id = cart_item_id[index] item = CartItem.objects.get(id=item_id) item.quantity += 1 item.user = user item.save() else: cart_item = CartItem.objects.filter(cart=cart) for item in cart_item: item.user = user item.save() except ObjectDoesNotExist: pass auth.login(request, user) messages.success(request, 'You are now logged in.') url = request.META.get('HTTP_REFERER') try: query = requests.utils.urlparse(url).query # next=/cart/checkout/ params = dict(x.split('=') for x in query.split('&')) if 'next' in params: next_page = params['next'] return redirect(next_page) except ValueError: return redirect('dashboard') else: messages.error(request, 'Invalid login credentials') return redirect('login') return render(request, 'accounts/login.html')
def product_detail(request, category_slug, product_slug): # to get single view page orderproduct = None try: single_product = Product.objects.get(category__slug=category_slug, slug=product_slug) # check if object added to cart # if this query returns any object that may exiest it returns true and if false then object not in cart in_cart = Cart.objects.filter( cart_id=_cart_id(request), cartitem__product=single_product).exists() except Exception as e: raise e if request.user.is_authenticated: try: orderproduct = OrderProduct.objects.filter( user=request.user, product_id=single_product.id).exists() except OrderProduct.DoesNotExist: orderproduct = None else: orderproduct = None # Get the reviews reviews = ReviewRating.objects.filter(product_id=single_product.id, status=True) # # Get the product gallery product_gallery = ProductGallery.objects.filter( product_id=single_product.id) context = { 'single_product': single_product, 'in_cart': in_cart, 'orderproduct': orderproduct, 'reviews': reviews, 'product_gallery': product_gallery, } return render(request, 'store/product_detail.html', context)
def product_detail(request, category_slug, product_slug): try: # first we need to get access the category,category__slug is from model category and slug is from product eg:http://127.0.0.1:8000/store/t-shirt/great-tshirt/ single_product = Product.objects.get(category__slug=category_slug, slug=product_slug) # It is a foreign key so we will acces cart attribute(column)from CartItem and inside it i want to acces cart_id from Cart in_cart = CartItem.objects.filter(cart__cart_id=_cart_id(request), product=single_product).exists() # if product exists in cart then it will return true or else false # return HttpResponse('in_cart') except Exception as e: raise e if request.user.is_authenticated: try: # if it is true we will show him submit review button orderproduct = OrderProduct.objects.filter( user=request.user, product_id=single_product.id).exists() except OrderProduct.DoesNotExist: orderproduct = None else: orderproduct = None # get the review reviews = ReviewRating.objects.filter(product_id=single_product.id, status=True) print(reviews) # get the product gallery product_gallery = ProductGallery.objects.filter( product_id=single_product.id) data = { 'single_product': single_product, 'in_cart': in_cart, 'order_product': orderproduct, 'reviews': reviews, 'product_gallery': product_gallery } return render(request, 'store/product_detail.html', data)
def login(request): if request.method == 'POST': email = request.POST['email'] password = request.POST['password'] user = auth.authenticate(email=email, password=password) if user is not None: try: cart = Cart.objects.get(cart_id=_cart_id(request)) is_cart_item_exists = CartItem.objects.filter( cart=cart).exists() if is_cart_item_exists: cart_item = CartItem.objects.filter(cart=cart) # getting the product variations by cart id product_variation = [] cart_item_id_list_cart_select = [] for item in cart_item: variation = item.variations.all() product_variation.append(list(variation)) cart_item_id_list_cart_select.append(item.id) print('product_variation:', product_variation) # get the cart items from the user to access his product variation cart_item = CartItem.objects.filter(user=user) ex_var_list = [] cart_item_id_list_user_select = [] for item in cart_item: existing_variation = item.variations.all() ex_var_list.append(list(existing_variation)) cart_item_id_list_user_select.append(item.id) print('ex_var_list: ', ex_var_list) print('id -list: ', cart_item_id_list_user_select) # find common elements in two lists below # product_variation = [1, 2, 3, 4, 6] # ex_var_list = [4, 6, 3, 5] for pr in product_variation: if pr in ex_var_list: print('commont item found - pr: ', pr) # get common cart_item from DB: select by user index = ex_var_list.index(pr) print('commont item found - index: ', index) item_id = cart_item_id_list_user_select[index] print('commont item found - item_id: ', item_id) item = CartItem.objects.get(id=item_id) print('commont item found - item: ', item) '''TBD''' # get quantity of common cart_item from cart (unanimous user) index_pv = product_variation.index(pr) print('commont item found - index_pv: ', index_pv) item_id_pv = cart_item_id_list_cart_select[ index_pv] print('commont item found - item_id_pv: ', item_id_pv) item_pv = CartItem.objects.get(id=item_id_pv) qty = item_pv.quantity print('commont item found - item_pv.quantity: ', qty) item_pv.delete() # correct quantity of common cart_item item.quantity += qty print('commont item found - quantity: ', item.quantity) item.user = user print('commont item found - user: '******'You are now logged in.') url = request.META.get('HTTP_REFERER') try: query = requests.utils.urlparse(url).query # query --> next=/cart/checkout/ params = dict(x.split('=') for x in query.split('&')) # params --> {'next': '/cart/checkout/'} if 'next' in params: nextPage = params['next'] return redirect(nextPage) except: return redirect('dashboard') else: messages.error(request, 'Invalid login credentials.') return redirect('login') return render(request, 'accounts/login.html')
def login(request): if request.method == 'POST': email = request.POST['email'] password = request.POST['password'] user = auth.authenticate(email=email, password=password) if user: try: cart = Cart.objects.get(cart_id=_cart_id(request)) does_cart_item_exist = CartItem.objects.filter( cart=cart).exists() if does_cart_item_exist: cart_items = CartItem.objects.filter(cart=cart) product_variations = [] # getting the product variation by cart id ids = [] for cart_item in cart_items: variation = cart_item.variations.all() product_variations.append(list(variation)) ids.append(cart_item.id) # getting the cart items from the user to access his product variations cart_items = CartItem.objects.filter(user=user) existing_product_variaions = [] ex_ids = [] for item in cart_items: variation = item.variations.all() existing_product_variaions.append(list(variation)) ex_ids.append(item.id) for index_, product_variation in enumerate( product_variations): if product_variation in existing_product_variaions: index = existing_product_variaions.index( product_variation) item_id = ex_ids[index] item = CartItem.objects.get(id=item_id) pr_item = CartItem.objects.get(id=ids[index_]) item.quantity += pr_item.quantity item.user = user item.save() else: cart_item = CartItem.objects.get(id=ids[index_]) cart_item.user = user cart_item.save() except: pass auth.login(request, user) messages.success(request, 'You are logged in.') url = request.META.get('HTTP_REFERER') try: query = requests.utils.urlparse(url).query params = dict(x.split('=') for x in query.split('&')) if 'next' in params: next_page = params.get('next') return redirect(next_page) except: return redirect('dashboard') else: messages.error(request, 'Invalid login credentials') return redirect('login') return render(request, 'accounts/login.html')
def login(request): if request.method == "POST": email = request.POST['email'] password = request.POST['password'] user = auth.authenticate(email=email, password=password) if user is not None: try: cart = Cart.objects.get(cart_id=_cart_id(request)) is_cart_item_exists = CartItem.objects.filter( cart=cart).exists() if is_cart_item_exists: cart_item = CartItem.objects.filter(cart=cart) # Getting the product variations by cart id product_variation = [] for item in cart_item: variation = item.variations.all() product_variation.append(list(variation)) # get cart items from the user to access his product variations cart_item = CartItem.objects.filter(user=user) ex_var_list = [] id = [] for item in cart_item: existing_variation = item.variations.all() ex_var_list.append(list(existing_variation)) id.append(item.id) #product_variation = [1, 2, 3, 4, 6] #ex_var_list = [4, 6, 3, 5] get the common product variation for pr in product_variation: if pr in ex_var_list: index = ex_var_list.index(pr) item_id = id[index] item = CartItem.objects.get(id=item_id) item.quantity += 1 item.user = user item.save() else: cart_item = CartItem.objects.filter(cart=cart) for item in cart_item: item.user = user item.save() except: pass auth.login(request, user) messages.success(request, 'Has accedido a tu cuenta') url = request.META.get('HTTP_REFERER') try: query = requests.utils.urlparse(url).query # next=/cart/checkout/ params = dict(x.split('=') for x in query.split('&')) if 'next' in params: nextPage = params['next'] return redirect(nextPage) except: return redirect('dashboard') else: messages.error(request, 'Las credenciales no son correctas') return redirect('login') return render(request, 'accounts/login.html')
def login(request): if request.method == "POST": email = request.POST['email'] password = request.POST['password'] user = auth.authenticate(email=email, password=password) if user is not None: try: cart = Cart.objects.get(cart_id=_cart_id(request)) is_cart_item_exists = CartItem.objects.filter(cart=cart).exists() if is_cart_item_exists: cart_item = CartItem.objects.filter(cart=cart) # group items in cart made while logged output product_variation = [] for item in cart_item: # if use variations of product variation = item.variations.all() product_variation.append(list(variation)) cart_item = CartItem.objects.filter(user=user) ex_var_list = [] id = [] for item in cart_item: existing_variation = item.variations.all() ex_var_list.append(list(existing_variation)) id.append(item.id) for pr in product_variation: if pr in ex_var_list: index = ex_var_list.index(pr) item_id = id[index] item = CartItem.objects.get(id=item_id) item.quantity += 1 item.user = user item.save() else: cart_item = CartItem.objects.filter(cart=cart) for item in cart_item: item.user = user item.save() except: pass auth.login(request, user) messages.success(request, 'Welcome to Vivero Verde! You are now logged in!') url = request.META.get('HTTP_REFERER') try: query = requests.utils.urlparse(url).query params = dict(x.split('=') for x in query.split('&')) if 'next' in params: nextPage = params['next'] return redirect('nextPage') return redirect('dashboard') except: return redirect('dashboard') else: messages.error(request, 'Invalid Username or Password. Please try again!') return redirect('login') return render(request, "accounts/login.html")