Exemple #1
0
def order_create(request):
    try:
        cart_id = request.session['cart_id']
        cart = Cart.objects.get(id=cart_id)
        request.session['total'] = cart.items.count()
    except:
        cart = Cart()
        cart.save()
        cart_id = cart.id
        request.session['cart_id'] = cart_id
        cart = Cart.objects.get(id=cart_id)
    form = OrderForm(request.POST)
    if form.is_valid():
        new_order = Order()
        new_order.user = request.user
        new_order.save()
    context = {'form': form}
    return render(request, 'order.html', context)
Exemple #2
0
def book(request):
    token = request.session['user']['token']
    user_response = api_get_user(request.session['user']['email'], token)
    gas_choices_response = api_get_gas(request.session['user']['token'])
    if user_response.ok and gas_choices_response.ok:
        user = user_response.json()
        if not user['address_set']:
            messages.warning(request, 'Vous devez créer une adresse.')
            return HttpResponseRedirect(reverse('create_address'))
        if not user['vehicle_set']:
            messages.warning(request, 'Vous devez ajouter un véhicule.')
            return HttpResponseRedirect(reverse('create_vehicle'))
        gas_choices = gas_choices_response.json()
        if request.method == 'POST':
            form = OrderForm(request.POST, user['address_set'], user['vehicle_set'], gas_choices)
            if form.is_valid():
                data = form.cleaned_data
                if int(data['date_refill'].month) > int(date.today().month) + settings.CALENDAR['months_visibilty']:
                    return render(request, 'book.html', {
                        'form': form, 'errors': 'Date invalide'
                    })
                data['user'] = request.session['user']['id']
                data['date_refill'] = str(data['date_refill'])
                for gas_choice in gas_choices:
                    if data['gas_name'] == gas_choice['name']:
                        data.update({'gas_price': gas_choice['price']})
                        break
                order_response = api_order_validate(data, request.session['user']['token'])
                if order_response.ok:
                    request.session['order'] = order_response.json()
                    request.session['payment'] = True
                    return HttpResponseRedirect(reverse('payment'))
                return render(request, 'book.html', {
                    'form': form, 'errors': order_response.json()['errors']
                })

        form = OrderForm(None, user['address_set'], user['vehicle_set'], gas_choices)

        return render(request, "book.html", {
            'user': user,
            'form': form,
        })
    return HttpResponseRedirect(reverse('logout'))
Exemple #3
0
def order(request):
    form = OrderForm(request.POST or None)
    cart = get_cart(request)
    if form.is_valid():
        name = form.cleaned_data['name']
        last_name = form.cleaned_data['last_name']
        phone = form.cleaned_data['phone']
        address = form.cleaned_data['address']
        comments = form.cleaned_data['comments']
        new_order = Order(user=request.user,
                          first_name=name,
                          last_name=last_name,
                          phone=phone,
                          address=address,
                          comments=comments,
                          total_price=cart.cart_total)
        new_order.user = request.user
        new_order.save()
        new_order.items.add(*cart.items.all())
        Cart.objects.get(id=int(request.session['cart_id'])).delete()
        del request.session['cart_id']

        email_list = []
        for user in User.objects.filter(is_superuser=True):
            email_list.append(user.email)
        send_mail(
            'Нове замовлення',
            'До вас прийшло нове замовлення. Його деталі зможете перглянути в адмінці',
            '*****@*****.**',
            [email_list],
        )

        return HttpResponseRedirect('/thank_you')

    return render(request, 'order.html', {
        'form': form,
    })
Exemple #4
0
def place(request, pk):
    place = Place.objects.get(id=pk)
    form = OrderForm(request.POST or None)

    if request.method == "GET":
        return render(request, "order/place.html", {
            "sidebar": sidebar,
            "place": place,
            "form": form
        })
    elif request.method == "POST":
        if form.is_valid():
            order = form.save(commit=False)
            order.client = Client.objects.get(user=request.user)
            order.place = place
            order.datetime = datetime.datetime.now()
            order.save()
            return redirect("index")
        else:
            return render(request, "order/place.html", {
                "sidebar": sidebar,
                "place": place,
                "form": form
            })
Exemple #5
0
def make_order_view(request):
    try:
        cart_id = request.session[
            'cart_id']  # Получение значения сессии при помощи ключа(то есть, 'cart_id').
        cart = Cart.objects.get(id=cart_id)
        request.session['total'] = cart.items.count()
    except:
        cart = Cart()
        cart.save()
        cart_id = cart.id
        request.session['cart_id'] = cart_id  # Передача значения в сессию
        cart = Cart.objects.get(id=cart_id)
    form = OrderForm(request.POST or None)

    if form.is_valid():
        name = form.cleaned_data['name']
        last_name = form.cleaned_data['last_name']
        phone = form.cleaned_data['phone']
        buying_type = form.cleaned_data['buying_type']
        address = form.cleaned_data['address']
        comments = form.cleaned_data['comments']
        new_order = Order()
        new_order.user = request.user
        new_order.save()
        new_order.items.add(cart)
        new_order.first_name = name
        new_order.last_name = last_name
        new_order.phone = phone
        new_order.address = address
        new_order.buying_type = buying_type
        new_order.comments = comments
        new_order.total = cart.cart_total
        new_order.save()
        del request.session['cart_id']
        del request.session['total']
        return HttpResponseRedirect(reverse('thank_you'))
Exemple #6
0
def order_create_view(request):
    context = {}
    form = OrderForm(request.POST or None)
    context['form'] = OrderForm(request.POST or None)
    cart = cart_session(request)
    context['cart'] = cart

    if form.is_valid():
        new_order = Order()
        new_order.user = request.user
        new_order.cart = cart
        new_order.first_name = form.cleaned_data['first_name']
        new_order.last_name = form.cleaned_data['last_name']
        new_order.second_name = form.cleaned_data['second_name']
        new_order.phone = form.cleaned_data['phone']
        new_order.buying_type = form.cleaned_data['buying_type']
        new_order.address = form.cleaned_data['address']
        new_order.comment = form.cleaned_data['comment']
        new_order.total = cart.cart_total
        new_order.save()

        del request.session['cart_id']
        return HttpResponseRedirect(reverse('congratulations'))
    return render(request, 'app/order.html', context)