示例#1
0
def cart(request):
    data = {'title': 'Shopping Cart'}

    # logger.warning("Your log message is here")
    # logger.warning(processData(request,data))
    # logger.info("pppppppppppppppppppp")
    return render(request, 'cart.html', processData(request, data))
def orderHistory(request):
    data = {'title': 'Previous orders '}

    if request.method == "POST":
        messages.error(request, "cant save. please try again or conact admin")
        return redirect('order_history')

    ordersFromDb = Order.objects.filter(user=request.user).order_by('-id')

    newOrders = []
    for order in ordersFromDb:
        tmp_order = {}
        tmp_order['id'] = order.id
        tmp_order['delivered'] = order.delivered
        tmp_order['rider'] = order.rider
        tmp_order['deliveredOn'] = order.deliveredOn
        tmp_order['total'] = order.total_price
        tmp_order['items'] = OrderedItem.objects.filter(
            order=order).order_by('-id')
        newOrders.append(tmp_order)

    print(newOrders)

    data['orders'] = newOrders

    return render(request, 'partner/owner/order_history.html',
                  processData(request, data))
示例#3
0
def loginUser(request):
    data = {'title': 'Login to your account'}

    if request.method == 'POST':

        username = request.POST.get('username')
        password = request.POST.get('password')

        if not (username and password):
            messages.error(request, 'All fields are mandatory')
            return redirect('login')

        user = auth.authenticate(username=username, password=password)
        if user is not None:
            if user.is_active:
                login(request, user)
                print('user logged in')
                nextUrl = request.POST.get('next')
                print(nextUrl)
                if not nextUrl:
                    nextUrl = 'dashboard'

                return redirect(nextUrl)

        messages.error(request, 'Invalid credentials')
        return redirect('login')

    else:
        # check account type, 3 types normal, rider and restaurent owner

        data['role'] = getRole(request)
        return render(request, 'login.html', processData(request, data))
示例#4
0
def home(request):
    data = {'title': 'THT Food System'}
    items = MenuItem.objects.filter(active=True)
    if items and items.count() > 0:
        data['menuItems'] = items

    return render(request, 'index.html', processData(request, data))
def getOrder(request):
    data = {'title': 'Previous orders '}

    data['pendingOrders'] = Order.objects.filter(
        Q(delivered=False),
        Q(rider=None) | Q(rider=request.user))

    return render(request, 'partner/rider/get_order.html',
                  processData(request, data))
示例#6
0
def signup(request):
    data = {'title': 'Create an account'}
    if (request.method == 'POST'):

        first_name = request.POST.get('first_name')
        last_name = request.POST.get('last_name')
        username = request.POST.get('username')
        email = request.POST.get('email')
        password1 = request.POST.get('password1')
        password2 = request.POST.get('password2')

        if not (first_name and last_name and username and email and password1
                and password2):
            messages.info(request, 'All fields are mandatory')
            return redirect('signup')

        if password1 != password2:
            messages.info(request, 'passwords not matching')
            return redirect('signup')

        else:
            if User.objects.filter(username=username).exists():
                messages.info(
                    request,
                    'Username already taken. please select another username')
                return redirect('signup')
            elif User.objects.filter(email=email).exists():
                messages.info(
                    request,
                    'Email already registered.Please login to continue')
            else:
                user = User.objects.create_user(username=username,
                                                email=email,
                                                password=password1,
                                                first_name=first_name,
                                                last_name=last_name)
                user.profile.role = getRole(request)
                user.save()

                print('user crated')
                messages.info(
                    request,
                    'Account created successfully. Please login to continue')
        return redirect('login')
    else:
        # check account type, 3 types normal, rider and restaurent owner
        role = request.GET.get('type', 'normal').lower()

        if role != 'rider' and role != 'owner':
            role = 'normal'

        data['role'] = role
        return render(request, 'signup.html', processData(request, data))
示例#7
0
def restaurantDetails(request):
    data = {'title': 'My Restaurant Details'}
    print("one")
    if request.method == "POST":
        name = request.POST.get('name')
        address1 = request.POST.get('address1', '')
        address2 = request.POST.get('address2', '')
        country = request.POST.get('country', 'India')
        state = request.POST.get('state', '')
        zip = request.POST.get('zip', '')
        location = request.POST.get('location', 'pala')
        tag = request.POST.get('tag', '')
        if not name:
            messages.error(request, 'cant save restaurant details')
            return redirect('restaurant_details')
        rest = Restaurant()
        try:
            rest = Restaurant.objects.create(user=request.user,
                                             name=name,
                                             address1=address1,
                                             address2=address2,
                                             country=country,
                                             state=state,
                                             zip=zip,
                                             location=location,
                                             tag=tag)
            messages.info(request, 'saved restaurant details')

        except IntegrityError:
            rest = Restaurant.objects.get(user=request.user)
            rest.name = name
            rest.address1 = address1
            rest.address2 = address2
            rest.country = country
            rest.state = state
            rest.zip = zip
            rest.location = location
            rest.tag = tag
            rest.save()
            messages.info(request, 'updated restaurant details.')
        except:
            messages.info(request, 'cant save restaurant details. try again')

        return redirect('restaurant_details')

    data['rest'] = Restaurant.objects.filter(
        user=request.user).order_by('id').first()
    print(data['rest'])
    return render(request, 'partner/owner/restaurant_details.html',
                  processData(request, data))
示例#8
0
def revenue(request):
    data = {'title': 'Total revenue for my Restaurant'}
    if request.method == "POST":
        messages.error(request, "cant save. please try again or conact admin")
        return redirect('revenue')
    items = OrderedItem.objects.filter(item__user=request.user)
    revenue = 0
    for i in items:
        revenue += i.item.price * i.quantity

    data['revenue'] = revenue

    return render(request, 'partner/owner/revenue.html',
                  processData(request, data))
示例#9
0
def payments(request):

    if request.method != 'POST':
        messages.error(request, 'Please checkout from cart')
        return redirect('cart')

    tmp = float(request.POST.get('total_amount'))
    total_amount = round(tmp, 2)
    context = {'title': 'Payment portal'}
    context['amount_rs'] = total_amount
    context['amount'] = total_amount * 100
    context['currency'] = "INR"
    context['key'] = settings.STRIPE_PUBLISHABLE_KEY

    return render(request, 'payments/home.html', processData(request, context))
示例#10
0
def home(request):
    data = {'title': 'Welcome to ezFood'}
    items = MenuItem.objects.filter(active=True)
    if items and items.count() > 0:
        data['menuItems'] = items

    data = processData(request, data)

    for mItem in items:
        print(mItem.id)
        for cItem in data['cartItems']:
            if (mItem.id == cItem['id']):
                mItem.quantity = cItem['quantity']

    return render(request, 'index.html', data)
示例#11
0
def ownerHistory(request):
    data = {'title': 'Previous orders '}

    if request.method == "POST":
        messages.error(request, "cant save. please try again or conact admin")
        return redirect('order_history')

    o = OrderedItem.objects.filter(item__user=request.user)
    history = ()
    for i in o:
        history.append(i)
        print(i.item)

    data['history'] = history

    print(history)
    return render(request, 'partner/owner/order_history.html',
                  processData(request, data))
示例#12
0
def addMenu(request):
    data = {'title': 'Add Items to Menu for my restaurant'}
    if request.method == "POST":

        id = request.POST.get('id')
        name = request.POST.get('name')
        price = request.POST.get('price')
        image = request.FILES.get('image')
        if not (name and price):
            messages.error(request, 'please specify name of dish')
            return redirect('add_menu')

        try:
            if id:
                print('updating menu item')
                menuItem = MenuItem.objects.filter(user=request.user,
                                                   id=id).first()
                menuItem.price = price
                if image:
                    menuItem.image.save(image.name, image)
                menuItem.save()
                messages.info(request, 'updated price for item ' + name)
            else:
                menuItem = MenuItem.objects.create(user=request.user,
                                                   name=name,
                                                   price=price,
                                                   image=image)
                messages.info(request, 'crated new Menu item')

        except Exception as e:
            messages.error(request, 'an error occured try again')
            print(e)
            return redirect('add_menu')

        return redirect('view_menu')

    itemId = request.GET.get('id')
    if itemId:
        data['menuItem'] = MenuItem.objects.filter(id=itemId).first()

    return render(request, 'partner/owner/add_menu.html',
                  processData(request, data))
示例#13
0
def deleteMenu(request):
    data = {'title': 'Delete item from Menu'}

    if request.method == 'POST':
        confirmed = request.POST.get('confirm', 'no')
        id = request.POST.get('id')

        if not id:
            messages.error(request, 'please select item from menu to delete')
            return redirect('view_menu')

        if confirmed and confirmed.lower() == 'yes':
            try:
                itemToDelete = MenuItem.objects.filter(user=request.user,
                                                       id=id).first()
                itemToDelete.delete()
                messages.error(request,
                               itemToDelete.name + ' deleted from Menu')
                return redirect('view_menu')
            except Exception as e:
                print(e)
                messages.error(request, 'cant delete item with id' + str(id))
                return redirect('view_menu')

        else:
            messages.error(request, 'please click "yes" to confirm and delete')
            return redirect('view_menu')

    id = request.GET.get('id')

    if not id:
        messages.error(request, 'please select id to delete ')
        return redirect('view_menu')

    if MenuItem.objects.filter(user=request.user, id=id).count() != 1:
        messages.error(request, 'Cant find item from menu to delete')
        return redirect('view_menu')

    data['item'] = MenuItem.objects.filter(user=request.user, id=id).first()
    return render(request, 'partner/owner/confirm_delete_item.html',
                  processData(request, data))
def deliveryHistory(request):
    data = {'title': 'Delivery history'}
    data['pendingOrders'] = Order.objects.filter(rider=request.user,
                                                 delivered=True)
    return render(request, 'partner/rider/delivery_history.html',
                  processData(request, data))
示例#15
0
def partnerWithUs(request):
    data = {'title': 'Partner with us'}
    return render(request, 'partner/select.html', processData(request, data))
示例#16
0
def dashboard(request):

    data = {'title': 'Dashboard'}
    return render(request, 'user/profile.html', processData(request, data))
示例#17
0
def profile(request):
    data = {'title': 'Profile'}
    return render(request, 'user/profile.html', processData(request, data))
示例#18
0
def support(request):
    data = {'title': 'Customer support page'}
    return render(request, 'support.html', processData(request, data))
示例#19
0
def offers(request):
    data = {'title': 'New offers'}
    return render(request, 'offers.html', processData(request, data))
示例#20
0
def specials(request):
    data = {'title': 'Special deals'}
    return render(request, 'specials.html', processData(request, data))
示例#21
0
def cart(request):
    data = {'title': 'Shopping Cart'}

    return render(request, 'cart.html', processData(request, data))
示例#22
0
def viewMenu(request):
    data = {'title': 'view Menu for my restaurant'}
    data['menuItems'] = MenuItem.objects.filter(user=request.user)
    return render(request, 'partner/owner/view_menu.html',
                  processData(request, data))