Beispiel #1
0
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})
Beispiel #2
0
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 })
Beispiel #3
0
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 })
Beispiel #4
0
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))
Beispiel #5
0
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))
Beispiel #6
0
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))
Beispiel #7
0
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)
Beispiel #8
0
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})
Beispiel #9
0
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 })
Beispiel #10
0
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')
Beispiel #11
0
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))
Beispiel #12
0
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))
Beispiel #13
0
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)
Beispiel #14
0
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))
Beispiel #15
0
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'])
Beispiel #16
0
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))
Beispiel #17
0
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'])
Beispiel #18
0
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)
Beispiel #19
0
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)
Beispiel #20
0
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'])
Beispiel #21
0
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'])
Beispiel #22
0
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))
Beispiel #23
0
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
        })
Beispiel #24
0
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))