def cart(request): if 'username' not in request.session: return HttpResponseRedirect(reverse(enter)) username = request.session['username'] data = {'username': username} carts = make_query(dbhost + "get_carts/", data) carts = parse_carts(carts) total = 0.0 lst = list() for cart in carts: data = {'productid': cart['productid']} product = make_query(dbhost + "get_product/", data) product = parse_product(product) dct = dict() dct['uprice'] = float( product["price"]) * (100.0 - float(product["discount"])) / 100.0 dct['tprice'] = dct['uprice'] * float(cart['count']) total += dct['tprice'] dct['productid'] = cart['productid'] dct['productname'] = product['name'] dct['count'] = int(cart['count']) lst.append(dct) return render(request, "cart.html", {'carts': lst, 'total': total})
def cart(request): if 'username' not in request.session: return HttpResponseRedirect(reverse(enter)) username = request.session['username'] data = { 'username': username } carts = make_query(dbhost + "get_carts/", data) carts = parse_carts(carts) total = 0.0 lst = list() for cart in carts: data = { 'productid': cart['productid'] } product = make_query(dbhost + "get_product/", data) product = parse_product(product) dct = dict() dct['uprice'] = float(product["price"]) * (100.0 - float(product["discount"])) / 100.0 dct['tprice'] = dct['uprice'] * float(cart['count']) total += dct['tprice'] dct['productid'] = cart['productid'] dct['productname'] = product['name'] dct['count'] = int(cart['count']) lst.append(dct) return render(request, "cart.html", { 'carts': lst, 'total': total })
def shop(request): query = None category = None products = list() if 'category' in request.GET: data = { 'category': request.GET['category'] } products = make_query(dbhost + "get_products_by_category/", data) products = parse_products(products) category = request.GET['category'] elif 'query' in request.GET: data = { 'query': request.GET['query'] } products = make_query(dbhost + "get_products_by_query/", data) products = parse_products(products) query = request.GET['query'] else: data = dict() products = make_query(dbhost + "get_products/", data) products = parse_products(products) data = list() cnt = 0 for product in products: dct = dict() # productid, name, category, price, count, discount, details, image, sold dct["productid"] = product["productid"] dct["name"] = product["name"] dct["category"] = product["category"] dct["discprice"] = float(product["price"]) * (100.0 - float(product["discount"])) / 100.0 if dct["discprice"] != float(product["price"]): dct["origprice"] = product["price"] dct["details"] = product["details"] dct["image"] = product["image"] reviews = make_query(dbhost + "get_reviews/", {'productid': product['productid']}) reviews = parse_reviews(reviews) cnt = 0.0 rating = 0.0 for review in reviews: rating += float(review["rating"]) cnt += 1.0 if cnt>0 : rating = rating/cnt dct['rating'] = rating data.append(dct) cnt += 1 #return HttpResponse(cnt) if category is None and query is None: return render(request, "shop.html", { 'products': data }) elif category is None and query is not None: return render(request, "shop.html", { 'products': data, 'query': query }) else: return render(request, "shop.html", { 'products': data, 'category': category })
def storepwd(request): username = request.POST['username'] data = { 'username': username } response = make_query(dbhost + "get_user/", data) username, email, _, picture, _, _ = parse_user(response) password = make_password(request.POST['password']) data = {'username': username, 'email': email, 'password':password, 'picture':picture, 'code':"0", 'verified':"1"} response = make_query(dbhost + "set_user/", data) return HttpResponseRedirect(reverse(index))
def place_order(request): username = request.session['username'] contactno = request.POST.get('contactno') address = request.POST.get('address') orderid = datetime.today() duedate = orderid + timedelta(days=14) duedate = duedate.date() paymentmethod = request.POST.get('optradio') paymentinfo = None if 'paymentinfo' in request.POST: paymentinfo = request.POST['paymentinfo'] data = {'username': username} carts = make_query(dbhost + "get_carts/", data) carts = parse_carts(carts) for cart in carts: productid = cart['productid'] cartcount = int(cart['count']) product = make_query(dbhost + "get_product/", {'productid': productid}) product = parse_product(product) avalcount = int(product['count']) amount = float( product["price"]) * (100.0 - float(product["discount"])) / 100.0 if cartcount > avalcount: # handle more than available order return HttpResponseRedirect("cart") product['count'] = int(product['count']) - cartcount product['sold'] = int(product['sold']) + cartcount response = make_query(dbhost + "set_product/", product) data = dict() data['username'] = username data['productid'] = productid data['count'] = cartcount data['delivstatus'] = "Pending" data['orderid'] = str(orderid) data['duedate'] = str(duedate) data['contactno'] = contactno data['address'] = address data['amount'] = amount data['paymentmethod'] = paymentmethod data['paymentinfo'] = paymentinfo response = make_query(dbhost + "set_order/", data) data = {'username': username} carts = make_query(dbhost + "del_carts/", data) return HttpResponseRedirect(reverse(profile))
def place_order(request): username = request.session['username'] contactno = request.POST.get('contactno') address = request.POST.get('address') orderid = datetime.today() duedate = orderid + timedelta(days=14) duedate = duedate.date() paymentmethod = request.POST.get('optradio') paymentinfo = None if 'paymentinfo' in request.POST: paymentinfo = request.POST['paymentinfo'] data = { 'username': username } carts = make_query(dbhost + "get_carts/", data) carts = parse_carts(carts) for cart in carts: productid = cart['productid'] cartcount = int(cart['count']) product = make_query(dbhost + "get_product/", {'productid': productid}) product = parse_product(product) avalcount = int(product['count']) amount = float(product["price"]) * (100.0 - float(product["discount"])) / 100.0 if cartcount > avalcount: # handle more than available order return HttpResponseRedirect("cart") product['count'] = int(product['count']) - cartcount product['sold'] = int(product['sold']) + cartcount response = make_query(dbhost + "set_product/", product) data = dict() data['username'] = username data['productid'] = productid data['count'] = cartcount data['delivstatus'] = "Pending" data['orderid'] = str(orderid) data['duedate'] = str(duedate) data['contactno'] = contactno data['address'] = address data['amount'] = amount data['paymentmethod'] = paymentmethod data['paymentinfo'] = paymentinfo response = make_query(dbhost + "set_order/", data) data = { 'username': username } carts = make_query(dbhost + "del_carts/", data) return HttpResponseRedirect(reverse(profile))
def profile(request): if 'username' not in request.session: return HttpResponseRedirect(reverse(index)) username = request.session['username'] data = { 'username': username } response = make_query(dbhost + "get_user/", data) username, email, _, picture, _, _ = parse_user(response) if picture is None: picture = "profilepic/default.jpg" if picture == "None": picture = "profilepic/default.jpg" data = { 'username': username, 'delivstatus': "Pending"} response = make_query(dbhost + "get_orders/", data) orders = parse_orders(response) pending = list() for order in orders: dct = dict() dct['duedate'] = order['duedate'] dct['productid'] = order['productid'] dct['count'] = order['count'] dct['amount'] = order['amount'] dct['paymentmethod'] = order['paymentmethod'] if 'paymentinfo' in order: dct['paymentinfo'] = order['paymentinfo'] dct['contactno'] = order['contactno'] dct['address'] = order['address'] pending.append(dct) data = { 'username': username, 'delivstatus': "Done"} response = make_query(dbhost + "get_orders/", data) orders = parse_orders(response) history = list() for order in orders: dct = dict() dct['duedate'] = order['duedate'] dct['productid'] = order['productid'] dct['count'] = order['count'] dct['amount'] = order['amount'] dct['paymentmethod'] = order['paymentmethod'] if 'paymentinfo' in order: dct['paymentinfo'] = order['paymentinfo'] dct['contactno'] = order['contactno'] dct['address'] = order['address'] history.append(dct) data = { 'username': username, 'email': email, 'picture': picture, 'pending':pending, 'history':history} return render(request, 'profile.html', data)
def product(request): if 'productid' not in request.GET: return HttpResponseRedirect(reverse(shop)) data = {'productid': request.GET['productid']} product = make_query(dbhost + "get_product/", data) product = parse_product(product) dct = dict() # productid, name, category, price, count, discount, details, image, sold dct["productid"] = product["productid"] dct["name"] = product["name"] dct["category"] = product["category"] dct["discprice"] = float( product["price"]) * (100.0 - float(product["discount"])) / 100.0 if dct["discprice"] != float(product["price"]): dct["origprice"] = product["price"] dct["details"] = product["details"] dct["image"] = product["image"] reviews = make_query(dbhost + "get_reviews/", data) reviews = parse_reviews(reviews) rating = 0.0 cnt = 0.0 data = list() for review in reviews: dct2 = dict() dct2["productid"] = review["productid"] dct2["username"] = review["username"] temp = {'username': review["username"]} response = make_query(dbhost + "get_user/", temp) _, _, _, picture, _, _ = parse_user(response) dct2["image"] = picture dct2["reviewid"] = review["reviewid"] dct2["rating"] = review["rating"] rating += float(review["rating"]) cnt += 1.0 dct2["details"] = review["details"] data.append(dct2) if cnt > 0: rating = rating / cnt dct['rating'] = str(rating) return render(request, "product.html", {'product': dct, 'reviews': data})
def product(request): if 'productid' not in request.GET: return HttpResponseRedirect(reverse(shop)) data = { 'productid': request.GET['productid'] } product = make_query(dbhost + "get_product/", data) product = parse_product(product) dct = dict() # productid, name, category, price, count, discount, details, image, sold dct["productid"] = product["productid"] dct["name"] = product["name"] dct["category"] = product["category"] dct["discprice"] = float(product["price"]) * (100.0 - float(product["discount"])) / 100.0 if dct["discprice"] != float(product["price"]): dct["origprice"] = product["price"] dct["details"] = product["details"] dct["image"] = product["image"] reviews = make_query(dbhost + "get_reviews/", data) reviews = parse_reviews(reviews) rating = 0.0 cnt = 0.0 data = list() for review in reviews: dct2 = dict() dct2["productid"] = review["productid"] dct2["username"] = review["username"] temp = { 'username': review["username"] } response = make_query(dbhost + "get_user/", temp) _, _, _, picture, _,_ = parse_user(response) dct2["image"] = picture dct2["reviewid"] = review["reviewid"] dct2["rating"] = review["rating"] rating += float(review["rating"]) cnt += 1.0 dct2["details"] = review["details"] data.append(dct2) if cnt>0 : rating = rating/cnt dct['rating'] = str(rating) return render(request,"product.html", { 'product': dct , 'reviews':data })
def updprofile(request): username = request.session['username'] data = { 'username': username } response = make_query(dbhost + "get_user/", data) username, email, password, picture, code, verified = parse_user(response) if request.POST['password'] != "": password = make_password(request.POST['password']) data = {'username': username, 'email': email, 'password':password, 'picture':picture, 'code':code, 'verified':verified} response = make_query(dbhost + "set_user/", data) return HttpResponseRedirect(reverse(profile)) return HttpResponse('update')
def updprofilepic(request): username = request.session['username'] if len(request.FILES) > 0: saveprofpic(username, request.FILES['picture']) data = { 'username': username } response = make_query(dbhost + "get_user/", data) username, email, password, picture, code, verified = parse_user(response) picture = "profilepic/" + username + ".jpg" data = {'username': username, 'email': email, 'password':password, 'picture':picture, 'code':code, 'verified':verified} response = make_query(dbhost + "set_user/", data) return HttpResponseRedirect(reverse(profile))
def delprofilepic(request): username = request.session['username'] data = { 'username': username } response = make_query(dbhost + "get_user/", data) username, email, password, picture, code, verified = parse_user(response) if picture is not None: os.remove(os.path.join(settings.MEDIA_ROOT, picture)) picture = "" data = {'username': username, 'email': email, 'password':password, 'picture':picture, 'code':code, 'verified':verified} response = make_query(dbhost + "set_user/", data) return HttpResponseRedirect(reverse(profile))
def verify(request): username = request.POST['username'] data = { 'username': username } response = make_query(dbhost + "get_user/", data) username, email, password, _, code, _ = parse_user(response) if(code == request.POST['code']): request.session['username'] = username data = {'username': username, 'email': email, 'password':password, 'picture':None, 'code':"0", 'verified':"1"} response = make_query(dbhost + "set_user/", data) return HttpResponseRedirect(reverse(index)) else: data = {'username': username} # error return render(request, "verify.html", data)
def del_from_cart(request): productid = request.POST.get('productid') username = request.POST.get('username') response = make_query(dbhost + 'del_cart/', { 'productid': productid, 'username': username }) return HttpResponseRedirect(reverse(cart))
def add_to_cart(request): if 'username' not in request.session: return HttpResponseRedirect("/product/?productid=" + request.POST['productid']) username = request.session['username'] productid = request.POST['productid'] count = int(request.POST['count']) data = { 'username':username, 'productid':productid, 'count':count } response = make_query(dbhost + "set_cart/", data) return HttpResponseRedirect("/product/?productid=" + request.POST['productid'])
def forgot(request): username = request.POST['username'] data = { 'username': username } response = make_query(dbhost + "get_user/", data) username, email, password, picture, code, verified = parse_user(response) if(username is None): return HttpResponseRedirect(reverse(enter)) code = gencode() msg = 'Visit: http://localhost:8080/pwdreset?code=' + code send_mail('Password reset', msg, '*****@*****.**', [email], fail_silently=True) data = {'username': username, 'email': email, 'password':password, 'picture':picture, 'code':code, 'verified':verified} response = make_query(dbhost + "set_user/", data) return HttpResponseRedirect(reverse(index))
def add_to_cart(request): if 'username' not in request.session: return HttpResponseRedirect("/product/?productid=" + request.POST['productid']) username = request.session['username'] productid = request.POST['productid'] count = int(request.POST['count']) data = {'username': username, 'productid': productid, 'count': count} response = make_query(dbhost + "set_cart/", data) return HttpResponseRedirect("/product/?productid=" + request.POST['productid'])
def pwdreset(request): code = request.GET['code'] if(code =="0"): return HttpResponseRedirect(reverse(enter)) data = { 'code': code } response = make_query(dbhost + "get_user_by_code/", data) username, _, _, _, _, _ = parse_user(response) if(username is None): return HttpResponseRedirect(reverse(enter)) data = { 'username': username } return render(request, "newpwd.html", data)
def signup(request): username = request.POST['username'] data = { 'username': username } response = make_query(dbhost + "get_user/", data) username, _, _, _, _, _ = parse_user(response) if(username is not None): return HttpResponseRedirect(reverse(index)) username = request.POST['username'] email = request.POST['email'] password = make_password(request.POST['password']) code = gencode() verified = "0" data = {'username': username, 'email':email, 'password':password, 'picture':None , 'code':code, 'verified': verified} response = make_query(dbhost + "set_user/", data) msg = 'Your verification code is: ' + code send_mail('Verification code', msg, '*****@*****.**', [email], fail_silently=True) data = {'username': username } return render(request, "verify.html", data)
def add_review(request): dct = dict() dct['productid'] = request.POST['productid'] if 'username' in request.POST: if request.POST['username'] == request.session['username']: if request.POST['rating'] != "" and request.POST['details'] != "": dct['username'] = request.POST['username'] dct['productid'] = request.POST['productid'] dct['details'] = request.POST['details'] dct['rating'] = request.POST['rating'] review = make_query(dbhost + "set_review/", dct) return HttpResponseRedirect("/product/?productid=" + request.POST['productid'])
def signin(request): username = request.POST['username'] data = { 'username': username } response = make_query(dbhost + "get_user/", data) username, _, password, _, _, verified = parse_user(response) if(username is None): return HttpResponseRedirect(reverse(enter)) if(verified == "0"): data = {'username':username} return render(request, "verify.html", data) if check_password(request.POST['password'], password): request.session['username'] = username return HttpResponseRedirect(reverse(index))
def shop(request): query = None category = None products = list() if 'category' in request.GET: data = {'category': request.GET['category']} products = make_query(dbhost + "get_products_by_category/", data) products = parse_products(products) category = request.GET['category'] elif 'query' in request.GET: data = {'query': request.GET['query']} products = make_query(dbhost + "get_products_by_query/", data) products = parse_products(products) query = request.GET['query'] else: data = dict() products = make_query(dbhost + "get_products/", data) products = parse_products(products) data = list() cnt = 0 for product in products: dct = dict() # productid, name, category, price, count, discount, details, image, sold dct["productid"] = product["productid"] dct["name"] = product["name"] dct["category"] = product["category"] dct["discprice"] = float( product["price"]) * (100.0 - float(product["discount"])) / 100.0 if dct["discprice"] != float(product["price"]): dct["origprice"] = product["price"] dct["details"] = product["details"] dct["image"] = product["image"] reviews = make_query(dbhost + "get_reviews/", {'productid': product['productid']}) reviews = parse_reviews(reviews) cnt = 0.0 rating = 0.0 for review in reviews: rating += float(review["rating"]) cnt += 1.0 if cnt > 0: rating = rating / cnt dct['rating'] = rating data.append(dct) cnt += 1 #return HttpResponse(cnt) if category is None and query is None: return render(request, "shop.html", {'products': data}) elif category is None and query is not None: return render(request, "shop.html", {'products': data, 'query': query}) else: return render(request, "shop.html", { 'products': data, 'category': category })