示例#1
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))
示例#2
0
def cart(request):
    data = {'title' : 'My Cart'}
    
    # logger.warning("Your log message is here")
    # logger.warning(processData(request,data))
    # logger.info("pppppppppppppppppppp")
    return render(request,'cart.html',processData(request,data))
示例#3
0
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))
示例#4
0
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))
示例#5
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))
示例#6
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))
示例#7
0
def home(request):
    data = {'title': 'Welcome to FOODie'}
    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)
示例#8
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))
示例#9
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', '')
        zip = request.POST.get('zip', '')
        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,
                                             zip=zip,
                                             tag=tag)
            messages.info(request, 'saved restaurant details')

        except IntegrityError:  #this error is generated on the loss of uniqueness of the assumed unique variable user
            rest = Restaurant.objects.get(user=request.user)
            rest.name = name
            rest.address1 = address1
            rest.address2 = address2
            rest.zip = zip
            rest.tag = tag
            rest.save()
            messages.info(request, 'updated restaurant details.')
        except:
            messages.info(
                request,
                'Loss of uniquness. 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))
示例#10
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))
示例#11
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))
示例#12
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))
示例#13
0
def support(request):
    data = {'title' : 'Customer support page'}
    return render(request,'support.html',processData(request,data))
示例#14
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))
示例#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 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))
示例#19
0
def specials(request):
    data = {'title' : 'About us'}
    return render(request,'specials.html',processData(request,data))
示例#20
0
def offers(request):
    data = {'title' : 'New offers'}
    return render(request,'offers.html',processData(request,data))