Esempio n. 1
0
def order(request):
    c = get_common_context(request)
    if request.method == "POST":
        if "step" in request.POST:
            step = int(request.POST["step"])
            res = []
            sum_price = 0
            for k, v in request.POST.iteritems():
                if k.startswith("field_") and int(v) > 0:
                    item = Item.get(int(k[6:]))
                    count = int(v)
                    res.append((item, count))
                    sum_price += item.price * count
            c["sum_price"] = sum_price
            c["order_content"] = res
            if step == 1:
                c["form"] = OrderForm()
                return render_to_response("order.html", c, context_instance=RequestContext(request))
            elif step == 2:
                form = OrderForm(request.POST)
                if form.is_valid():
                    ord = form.save()
                    print ord
                    for item, count in res:
                        OrderContent(order=ord, item=item, count=count).save()
                    ord.send_email()
                    return render_to_response("order_ok.html", c, context_instance=RequestContext(request))
                else:
                    c["form"] = form
                    return render_to_response("order.html", c, context_instance=RequestContext(request))
        else:
            raise Http404()
    else:
        raise Http404()
Esempio n. 2
0
def order_create(request):
    cart = Cart(request)
    user = request.user
    if request.method == 'POST':
        form= OrderForm(user,request.POST)
        order = form.save(commit = False)
        order.user = user
        order.save()
        for item in cart:
            OrderItem.objects.create(order= order, book = item.book , quantity= item.quantity)
        cart.clear()
        return redirect('order:order_detail', order_id = order.order_id)
    else:
        form = OrderForm(user)
        categories =[]
        for item in cart:
            category = item.book.category
            if category not in categories:
                categories.append(category)
        if categories:
            related_books = Book.objects.filter(category = categories[0])
            if len(categories)>1:
                for category in categories[1:]:
                    related_books= related_books|(Book.objects.filter(category = category))
        related_books = related_books[:5]
        return render(request,'order/order_form.html',{'cart':cart, 'form':form,'related_books':related_books})
Esempio n. 3
0
def order(request):
	if request.POST:
		form = OrderForm(request.POST)
		if form.is_valid():
			order = form.save(commit=False)
		else:
			return render_to_response("order.html",{"form":form},context_instance=RequestContext(request))
		try:
			cart = Cart.objects.get(id = request.session.get("cart"))
		except:
			return HttpResponse("Server Error")
		cart.status = 'off'
		cart.save()
		order.cart = cart
		order.delivery = cart.delivery
		del request.session['cart']
		order.serial = serial_generator()
		order.save()
		#mailing(order,request)
		for i in cart.items.all():
			i.size.stock-=i.quantity
			i.size.save()
		return render_to_response("thanks.html",{ "order":order }, context_instance=RequestContext(request))
	else:
		form = OrderForm()
		return render_to_response("order.html",{"form":form},context_instance=RequestContext(request))
Esempio n. 4
0
def place_order(request):
    if request.method == 'POST':
        search_form = OrderForm(request.POST)
        if search_form.is_valid():
            unique_flight_id = request.POST['unique_flight_id']
            first_name = search_form.cleaned_data['first_name']
            last_name = search_form.cleaned_data['last_name']
            document_id = search_form.cleaned_data['document_id']
            birth_day = search_form.cleaned_data['birth_day']
            email = search_form.cleaned_data['email']
            class_of_service = request.POST['class_of_service']

            order = Order(unique_flight_id=unique_flight_id,
                          first_name=first_name,
                          last_name=last_name,
                          document_id=document_id,
                          birth_day=birth_day,
                          email=email,
                          order_hash=uuid.uuid1().hex,
                          booking_id=uuid.uuid1().hex[:7].upper(),
                          class_of_service=class_of_service)

            if order.unique_flight.try_take_seat(class_of_service):
                order.save()
                send_order(order)
                return render_to_response('status.html', {'status': 'Order created, link sent to you by email'},
                                          context_instance=RequestContext(request))
            else:
                return render_to_response('status.html', {
                    'status': 'We are sorry, but there are no free places of class you have chosen'},
                                          context_instance=RequestContext(request))
    else:
        return redirect('/search/')
Esempio n. 5
0
File: views.py Progetto: varikin/nom
def create_order(request):
    if request.method == 'POST':
        orderForm = OrderForm(request.POST)
        if orderForm.is_valid():
            order = orderForm.save()
            return redirect(order)
    else:
        orderForm = OrderForm()

    return {
        'orderForm': orderForm,
    }
Esempio n. 6
0
def order(request):
    c = get_common_context(request)
    #c.update({'p': Page.get('order', c['lang'])})
    if request.method == 'GET':
        c.update({'form': OrderForm()})
    elif request.method == 'POST':
        form = OrderForm(request.POST, request.FILES)
        if form.is_valid():
            form.save()
            form = OrderForm()
            c['feedback_ok'] = True
        c.update({'form': form})
    return render_to_response('order.html', c, context_instance=RequestContext(request))
Esempio n. 7
0
def index(request):
    cart = get_cart(request)
    items = CartItem.objects.filter(cart=cart)
    if request.method == 'POST':
        voucher_code = request.POST.get('voucher_code', None)
        form = OrderForm(request.POST)
        if form.is_valid():
            order = form.save(commit=False)
            order.discount_total = cart.discount_total
            order.gross_total = cart.gross_total
            order.net_total = cart.net_total
            order.user = request.user
            order.voucher_code = voucher_code
            order.order_id = ''
            order.billing_post_code = request.POST['billing_zip']
            order.billing_county = request.POST['billing_county']
            order.billing_district = request.POST['billing_district']
            order.shipping_post_code = request.POST['shipping_zip']
            order.shipping_county = request.POST['shipping_county']
            order.shipping_district = request.POST['shipping_district']
            order.save()
            request.session.save()
            request.session['order'] = order
            
            if order.payment_method == 0: 
                return redirect('order-paypal')
            else:
                return redirect('order-success')
    else:
        profile = request.user.profile
        form = OrderForm(initial={
                'billing_recipient': request.user.get_name(),
                'billing_phone' : profile.phone,
                'billing_address': profile.address,
                'billing_country': profile.country,
                'payment_method': 0,
                'reciept_type': 0,
                'dispatch_time': 0,
            }
        )
    try:
        voucher = request.session['voucher']
    except KeyError:
        voucher = None

    return render(request, 'order/index.html', {'cart': cart, 'form': form, 'items': items, 'voucher': voucher})
Esempio n. 8
0
def add_order(request):

    if request.method == "POST":

        form = OrderForm(request.POST)

        if form.is_valid():
            form.save()

            return redirect(order_index)
        else:
            print(form.errors)

    else:
        context = {"form": OrderForm()}

    return render(request, "add_order.html", context)
Esempio n. 9
0
def add_order(request):

    if request.method == 'POST':

        form = OrderForm(request.POST)

        if form.is_valid():
            form.save()

            return redirect(index)
        else:
            print(form.errors)

    else:
        context = {'form':OrderForm()}

    return render(request, 'add_order.html',context)
Esempio n. 10
0
File: views.py Progetto: kpx13/mznak
def get_common_context(request):
    c = {}
    
    form = OrderForm()
    if request.method == 'POST':
        form = OrderForm(request.POST)
        if form.is_valid():
            form.save(request.POST['action'])
            if request.POST['action'] == 'request':
                c['order_ok'] = True
            else: 
                c['feedback_ok'] = True
            form = OrderForm()
    c['form'] = form
    
    c['request_url'] = request.path
    c['is_debug'] = settings.DEBUG
    c['phone'] = config_value('MyApp', 'PHONE')
    ORDERS_COUNT = int(config_value('MyApp', 'ORDERS_COUNT'))
    c['oc_3'] = ORDERS_COUNT % 10
    ORDERS_COUNT = ORDERS_COUNT / 10
    c['oc_2'] = ORDERS_COUNT % 10
    c['oc_1'] = ORDERS_COUNT / 10
    c.update(csrf(request))
    return c
Esempio n. 11
0
def OrderView(request,order_id=None):
    
    if order_id:
        order = Order.objects.filter(pk=order_id)
    else:
        order = Order()
    
    NestedFormset = inlineformset_factory(Order,DetailOrder,form=DetailForm,can_delete=True)
    
    if request.method == 'POST':
        main_form = OrderForm(request.POST, instance=order)
        detail_form = NestedFormset(request.POST, request.FILES, instance=order)
        
        if main_form.is_valid() and detail_form.is_valid():
            main_form.save()
            detail_form.save()
            return HttpResponseRedirect('summary')
    else:
        main_form = OrderForm(instance=order)
        detail_form = NestedFormset(instance=order)
    return render_to_response('order.html', {'main_form':main_form,'detail_form':detail_form},context_instance=RequestContext(request))
    
Esempio n. 12
0
def update(request, id):
    order = Order.objects.get(order_id=id)
    if request.method == "POST":
        form = OrderForm(request.POST, instance=order)
        form.save()
        return redirect("/order")
    else:
        form = OrderForm(instance=order)
    return render(request, "order/edit.html", {'form': form})
Esempio n. 13
0
def create(request):
    print(request.POST)
    if request.method == "POST":
        form = OrderForm(request.POST)
        form.save()
        return redirect("/order")
    else:
        form = OrderForm()
    return render(request, "order/create.html", {'form': form})
Esempio n. 14
0
def order_detail(request):
    cart = Cart(request)
    if request.method == "POST":
        form = OrderForm(request.POST)
        if form.is_valid:
            order = form.save()
            for item in cart:
                print(item['product'])
                print(item['price'])
                OrderItem.objects.create(order=order,
                                         product=item['product'],
                                         quantity=item['quantity'],
                                         price=item['price'])
            cart.clear()
            new_order = order
            print('ZAKAZ', order.id)
            return render(request, 'order/thanks_order.html',
                          {'order': new_order})
    else:
        form = OrderForm()
        return render(request, 'order/order_detail.html', {
            'form': form,
            'cart': cart
        })
Esempio n. 15
0
def order_edit(request, order_id):

    context = {}

    try:
        order = get_object_or_404(Order, id=order_id)

        if request.method == 'POST':

            form = OrderForm(request.POST)

            if form.is_valid():
                order.order_customer_id = form.cleaned_data['order_customer_id']
                order.order_product_id = form.cleaned_data['order_product_id']
                order.order_amount = form.cleaned_data['order_amount']

                order.save()

                return HttpResponseRedirect('/order/detail/%s/' % order.id)

        else:
            order_data = {
                'order_product_id': order.order_product_id,
                'order_customer_id': order.order_customer_id,
                'order_amount': order.order_amount
            }

            form = OrderForm(initial=order_data)

    except Order.DoesNotExist:

        context.update({'error': True})

    context.update({'title': 'Editar Cliente', 'form': form, 'update': True, 'order': order})

    return render(request, 'add_order.html', context)
Esempio n. 16
0
def listing(request, listing_id):
    """Страница listing"""
    listing = get_object_or_404(Listing, pk=listing_id)
    form = OrderForm(request.POST or None, initial={'listing': listing})

    if request.method == "POST":
        if form.is_valid():
            form.save()
            send_mail(
                'Заявка от torrehome.ru',
                'Зайдите в админку чтобы почетать заявку http://torrehome.ru/admin/ ',
                'http://torrehome.ru/admin/', ['*****@*****.**'],
                fail_silently=False)
            return HttpResponseRedirect(
                "{}?sended=True".format(
                    reverse('listing', kwargs={'listing_id': listing_id})), )

    context = {
        'listing': listing,
        'form': form,
        'sended': request.GET.get("sended", False)
    }

    return render(request, 'listings/listing.html', context)
Esempio n. 17
0
File: views.py Progetto: kpx13/h2h
def order(request):
    c = get_common_context(request)
    form = OrderForm()
    # filter real countries
    c["countries"] = Country.objects.filter(wt_4=False)
    if request.method == "POST":
        form = OrderForm(request.POST)
        if form.is_valid():
            form.save()
            c["order_ok"] = True
            form = OrderForm()
    c["form"] = form
    return render_to_response("order.html", c, context_instance=RequestContext(request))
Esempio n. 18
0
def Order(request):
    '''
    Render the order page
    '''
    template = 'order/order.html'
    if request.method == 'GET':
        return render(request, template, {'orderForm': OrderForm()})

    orderForm = OrderForm(request.POST)
    if not orderForm.is_valid():
        return render(request, template, {'orderForm': OrderForm})
    orderForm.save()
    return render(request, 'main/main.html')
Esempio n. 19
0
def veg_food_view(request):
    veg_types = FoodItem.objects.filter(
        food_super_class__class_name__contains="veg")
    veg_dict = {'veg_records': veg_types}
    form = OrderForm()

    if request.method == "POST":
        form = OrderForm(request.POST)
        if form.is_valid():
            form.save(commit=True)
            return redirect('type/')
        else:
            print("Error")
    return render(request, 'order/veg_food.html', {
        'form': form,
        'veg_records': veg_dict
    })
Esempio n. 20
0
    def get(self, request, *args, **kwargs):
        try:
            order = Order.objects.get(id=kwargs.get['id'])
        except Order.DoesNotExist:
            return redirect('/order/list')
        form = OrderForm(initial=order.__dict__, instance=order)
        user = UserOrderForm(instance=order.user)
        date = str(timezone.now().date())

        context = {
            'date': date,
            'model': 'order',
            'view': 'order',
            'order': order,
            'form': form,
            'user': user
        }

        return render(request, 'order.html', context)
Esempio n. 21
0
def order(request):
    context = {}

    basket = Basket.get_session_basket(request.session._session_key)

    # if not basket['goods_count']:
    #     return HttpResponseRedirect('/')

    if request.method.lower() == 'post':
        order_form = OrderForm(request.POST, basket_summary=basket['summary'])
        context['show_form'] = True

        if order_form.is_valid():
            order_instance = order_form.save(commit=False)
            order_instance.delivery_price = order_form.cleaned_data['delivery_price']
            order_instance.delivery_type = order_form.cleaned_data['delivery_type_label']
            order_instance.delivery_time = order_form.cleaned_data['delivery_time']
            order_instance.make_order(request.session.session_key)

            send_order_email(order_instance, request.META.get('HTTP_HOST'))

            if order_instance.pay_type not in ('nal', 'nalk'):
                # оплата онлайн
                payment_url = WalletonePaymentForm(initial={
                    'WMI_PAYMENT_AMOUNT': order_instance.total_price(),
                    'WMI_PAYMENT_NO': order_instance.id,
                    'WMI_DESCRIPTION': u'%s заказ №%s' % (request.get_host(), order_instance.id)
                }, host=settings.HOST).get_redirect_url()
                return HttpResponseRedirect(payment_url)
            else:
                # оплата наличными
                return HttpResponseRedirect(reverse('ordered', args=(order_instance.id, )))

    else:
        order_form = OrderForm(basket_summary=basket['summary'])

    context['for_order'] = True
    context['order_form'] = order_form
    context['delivery_types'] = DELIVERY_TYPES
    context['pay_types'] = PAY_TYPES
    context['free_delivery_price'] = FREE_DELIVERY_PRICE
    context['add_toy_price'] = ADD_TOY_PRICE

    add_goods_filter = Q(show_in_bouquets=True)
    context['add_goods'] = list(Bouquet.active_objects().filter(add_goods_filter))
    context['add_goods'].extend(list(Unusual.active_objects().filter(add_goods_filter)))
    context['add_goods'].extend(list(Special.active_objects().filter(add_goods_filter)))
    shuffle(context['add_goods'])

    return render(request, 'order.html', context)
Esempio n. 22
0
def place_order(request):
    if request.method == "POST":
        form = OrderForm(request.POST, request.FILES)

        if form.is_valid():
            data = form.save(commit=False)
            custm_user = CustomUser.objects.filter(user=request.user).first()
            data.user = custm_user
            data.save()
            return HttpResponseRedirect(reverse('home'))
    else:
        form = OrderForm()

    return render(request, "order/index.html", {'form': form})
Esempio n. 23
0
def orderCreate(request):
    '''
    Create a new article instance
        1. If method is GET, render an empty form
        2 . If method is POST, perform form validation. Display error messages if the form is invalid
        3. Save the form to the model and redirect to the article page
    '''
    template = 'order/orderCreate.html'
    if request.method == 'GET':
        print(OrderForm())
        return render(request, template, {'orderForm': OrderForm()})
    # POST
    orderForm = OrderForm(request.POST)
    if not orderForm.is_valid():
        return render(request, template, {'orderForm': orderForm})
    orderForm.save()
    messages.success(request, '訂單已傳送')
    return redirect('order:order')
Esempio n. 24
0
def gig_detail(request, pk):
    user = User.objects.filter(id=pk).first()
    gig = Gig.objects.get_by_id(pk)
    order_form = OrderForm(request.POST or None,
                           initial={
                               'count': 0,
                               'gig_id': pk
                           })
    info = Comment.objects.filter(status=True, gig=gig, reply=None)
    buyer = Transaction.objects.filter(gig=gig)
    if request.method == "POST":
        cmform = CommentForm(request.POST)
        if cmform.is_valid():
            content = request.POST.get('content')
            reply_id = request.POST.get('comment_id')
            comment_qs = None
            if reply_id:
                comment_qs = Comment.objects.get(id=reply_id)
            comment = Comment.objects.create(gig=gig,
                                             user=request.user,
                                             content=content,
                                             reply=comment_qs)
            comment.save()
            return HttpResponseRedirect(comment.gig.get_absolute_url())
    else:
        cmform = CommentForm()
        if not gig:
            raise Http404('یافت نشد')

    context = {
        'info': info,
        'cmform': cmform,
        'gig': gig,
        'order_form': order_form,
        'buyer': buyer,
        'categories': CATEGORY,
    }
    # if request.is_ajax():
    #     html = render_to_string('gig/gig_detail.html', context, request=request)
    #     return JsonResponse({'form': html})
    return render(request, 'gigs/gig_detail.html', context)
Esempio n. 25
0
def orderCreate(request):
    '''
    Create a new order instance
        1. If method is GET, render an empty form
        2. If method is POST, perform form validation and display error messages if the form is invalid
        3. Save the form to the model and redirect the user to the article page
    '''
    template = 'order/orderCreate.html'
    if request.method == 'GET':
        return render(request, template, {'orderForm':OrderForm()})
    # POST
    orderForm = OrderForm(request.POST)
    if not orderForm.is_valid():
        return render(request, template, {'orderForm':orderForm})

    orderForm.save()
    return render(request, 'main/main.html')
Esempio n. 26
0
File: views.py Progetto: kpx13/cargo
def order_page(request):
    c = get_common_context(request)
    c.update(pages.views.get_page('order'))

    if request.POST:
        form = OrderForm(request.POST)
        if form.is_valid():
            form.save()
            form = OrderForm()
            c['done'] = True
            messages.success(request, u'Ваш заказ успешно отправлен.')
    else:
        form = OrderForm()

    c['form'] = form

    return render_to_response('vn.html', c, context_instance=RequestContext(request))
Esempio n. 27
0
def user_dash_view(request):
    orders = Order.objects.filter(
        user_details=request.user).order_by('-date_of_order')
    if (request.user.user_type == 'U'):
        if request.method == "POST":
            form = OrderForm(request.POST)
            if form.is_valid():
                order = form.save(commit=False)
                order.user_details = request.user
                order.status = 'P'
                order.save()
                # return redirect()
        else:
            form = OrderForm()
        return render(request, 'user/userhome2.html', {
            'orders': orders,
            'form': form
        })
Esempio n. 28
0
    def post(self, request, *args, **kwargs):
        order = Order.objects.get(id=kwargs.get['id'])
        user = UserOrderForm(request.POST, prefix="user", instance=order.user)
        order = OrderForm(request.POST, prefix="order", instance=order)

        if user.is_valid():
            user.save()
        else:
            return JsonResponse({
                'errors': user.errors,
                'non-field': user.non_field_errors()
            })

        if order.is_valid():
            order.save()
        else:
            return JsonResponse({
                'errors': order.errors,
                'non-field': order.non_field_errors()
            })

        return JsonResponse({'result': True})
Esempio n. 29
0
def create_order(request):
    """使用 cart 的数据创建 order"""
    cart = Cart(request)
    if request.method == 'POST':
        order_form = OrderForm(request.POST)
        if order_form.is_valid():
            # create order
            order = order_form.save(commit=False)
            order.customer = request.user
            order.email = request.user.email
            if cart.coupon:
                order.coupon = cart.coupon
                order.discount = cart.coupon.discount
            order.save()
            # create order_item
            for item in cart:
                OrderItem.objects.create(order=order,
                                         product=item['product'],
                                         price=item['price'],
                                         quantity=item['quantity'])
            cart.clear()
            # store order id
            request.session['order_id'] = order.id
            # send notice mail by celery
            order_created.delay(order.id)
            # 推荐计分
            recommender = Recommender()
            recommender.cal_products_bought(
                [item.product for item in order.items.all()])
            # 重定向到支付页
            return redirect('order:payment_process')
    else:
        order_form = OrderForm()
    return render(request, 'order/create.html', {
        'order_form': order_form,
        'cart': cart
    })
Esempio n. 30
0
def orderbook(request, base_code, quote_code):
    try:
        base_currency = Currency.objects.get(code=base_code)
        quote_currency = Currency.objects.get(code=quote_code)
        other_currencies = Currency.objects.exclude(
            code__exact=base_code).exclude(code__exact=quote_code)

        user = request.user
        base_account = user.account_set.get(currency__code=base_code)
        quote_account = user.account_set.get(currency__code=quote_code)
    except (Currency.DoesNotExist, Account.DoesNotExist):
        raise Http404('Non existent currencies')

    other_accounts = user.account_set.exclude(currency__code=base_code)
    other_accounts = other_accounts.exclude(currency__code=quote_code)

    if request.method == 'POST':
        form = OrderForm(request.POST)

        if form.is_valid():
            price = form.cleaned_data['price']
            amount = form.cleaned_data['amount']

            type_ = form.cleaned_data['order_type']

            if type_ == OrderType.BUY:
                account = quote_account
            elif type_ == OrderType.SELL:
                account = base_account

            if amount > account.balance:
                return HttpResponse('Not enough money')

            account.balance -= amount
            account.save()

            assert account.balance >= 0

            order = Order.objects.create(user=user,
                                         base_currency=base_currency,
                                         quote_currency=quote_currency,
                                         price=price,
                                         amount=amount,
                                         status=StatusType.ACTIVE,
                                         order_type=type_)
            order.save()
    else:
        form = OrderForm()

    account_orders = user.order_set.filter(base_currency__code=base_code,
                                           quote_currency__code=quote_code)

    all_orders = Order.objects.filter(base_currency__code=base_code,
                                      quote_currency__code=quote_code,
                                      status=StatusType.ACTIVE)

    buy_orders = all_orders.filter(order_type=OrderType.BUY)
    sell_orders = all_orders.filter(order_type=OrderType.SELL)

    context = {
        'base_currency': base_currency,
        'quote_currency': quote_currency,
        'other_currencies': other_currencies,
        'base_account': base_account,
        'quote_account': quote_account,
        'other_accounts': other_accounts,
        'account_orders': account_orders,
        'form': form,
        'buy_orders': buy_orders,
        'sell_orders': sell_orders,
    }

    return render(request, 'orderbook.html', context=context)
Esempio n. 31
0
 def get_context_data(self, **kwargs):
     context = super().get_context_data(**kwargs)
     # order\forms.py 폼을 생성할때 리퀘스를 전달해줌
     context['form'] = OrderForm(self.request)
     return context
Esempio n. 32
0
def get_common_context(request):
    form = OrderForm()
    hform = OrderHForm()
    fform = OrderFForm()
    c = {}
    if request.method == 'POST':
        if request.POST['action'] == 'subscribe':
            em = request.POST.get('email', None)
            if em:
                Subscribe(email=em).save()
                messages.success(request,
                                 u'Вы успешно подписались на рассылку.')
            else:
                messages.error(request, u'Необходимо ввести емейл.')
        elif request.POST['action'] == 'homeform':
            hform = OrderHForm(request.POST)
            if hform.is_valid():
                hform.save()
                messages.success(request, u'Ваша заявка успешно отправлена.')
                hform = OrderHForm()
            else:
                c['show_hform'] = True
                messages.error(request, u'Необходимо ввести имя и телефон.')
        elif request.POST['action'] == 'franchajzing':
            fform = OrderFForm(request.POST)
            if fform.is_valid():
                fform.save()
                messages.success(request, u'Ваша заявка успешно отправлена.')
                fform = OrderFForm()
            else:
                print fform.errors
                c['show_fform'] = True
                messages.error(request, u'Необходимо ввести имя и телефон.')
        else:
            form = OrderForm(request.POST)
            if form.is_valid():
                form.save()
                c['request-ok'] = True
            else:
                if request.POST['action'] == 'signup':
                    c['show_signup'] = True
                if request.POST['action'] == 'get':
                    c['show_get'] = True
                if request.POST['action'] == 'gift':
                    c['show_gift'] = True
                messages.error(request, u'Необходимо ввести имя.')

    c['request_url'] = request.path
    c['is_debug'] = settings.DEBUG
    c['reviews'] = Review.objects.all()[:3]
    c['form'] = form
    c['hform'] = hform
    c['fform'] = fform
    c['menu'] = Menu.objects.filter(parent=None)
    c['partners'] = Partner.objects.all()
    c['complex'] = Page.get_by_slug('complex').content

    try:
        c['menu_cat'] = Menu.get_by_href(request.path).parent
    except:
        c['menu_cat'] = None

    c['siteurl'] = request.get_host().split('.')[0]
    c['phone'] = config_value('MyApp', 'PHONE')
    c.update(csrf(request))
    return c
Esempio n. 33
0
    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)

        context['form'] = OrderForm(
            self.request)  # orderform에서 받은 값을 'form'으로 템플릿에 전달한다.
        return context  # view 함수이기 때문에 request가 있으니 폼을 생성할 때 request를 전달한다.
Esempio n. 34
0
def orderproduct(request):
    category = Category.objects.all()
    current_user = request.user
    shopcart = ShopCart.objects.filter(user_id=current_user.id)
    total = 0
    for rs in shopcart:
        if rs.product.variant == 'None':
            total += rs.product.price * rs.quantity
        else:
            total += rs.variant.price * rs.quantity

    if request.method == 'POST':  # if there is a post
        form = OrderForm(request.POST)
        # return HttpResponse(request.POST.items())
        if form.is_valid():
            # Send Credit card to bank,  If the bank responds ok, continue, if not, show the error
            # ..............

            data = Order()
            # get product quantity from form
            data.first_name = form.cleaned_data['first_name']
            data.last_name = form.cleaned_data['last_name']
            data.address = form.cleaned_data['address']
            data.city = form.cleaned_data['city']
            data.phone = form.cleaned_data['phone']
            data.user_id = current_user.id
            data.total = total
            data.ip = request.META.get('REMOTE_ADDR')
            ordercode = get_random_string(5).upper()  # random cod
            data.code = ordercode
            data.save()

            for rs in shopcart:
                detail = OrderProduct()
                detail.order_id = data.id  # Order Id
                detail.product_id = rs.product_id
                detail.user_id = current_user.id
                detail.quantity = rs.quantity
                if rs.product.variant == 'None':
                    detail.price = rs.product.price
                else:
                    detail.price = rs.variant.price
                detail.variant_id = rs.variant_id
                detail.amount = rs.amount
                detail.save()
                # ***Reduce quantity of sold product from Amount of Product
                if rs.product.variant == 'None':
                    product = Product.objects.get(id=rs.product_id)
                    product.amount -= rs.quantity
                    product.save()
                else:
                    variant = Variants.objects.get(id=rs.product_id)
                    variant.quantity -= rs.quantity
                    variant.save()
                # ************ <> *****************

            # Clear & Delete shopcart
            ShopCart.objects.filter(user_id=current_user.id).delete()
            request.session['cart_items'] = 0
            messages.success(request,
                             "Your Order has been completed. Thank you ")
            return render(request, 'order/order_completed.html', {
                'ordercode': ordercode,
                'category': category
            })
        else:
            messages.warning(request, form.errors)
            return HttpResponseRedirect("/order/orderproduct")

    form = OrderForm()
    profile = UserProfile.objects.get(user_id=current_user.id)
    context = {
        'shopcart': shopcart,
        'category': category,
        'total': total,
        'form': form,
        'profile': profile,
    }
    return render(request, 'order/order_form.html', context)
Esempio n. 35
0
 def get(self, request):
     form = OrderForm()
     return render(request, 'order/orderList.html', {'form': form})
Esempio n. 36
0
 def get(self, request, *args, **kwargs):
     categories = Category.objects.all()
     form = OrderForm(request.POST or None)
     context = {'cart': self.cart, 'categories': categories, 'form': form}
     return render(request, 'order_checkout.html', context)
Esempio n. 37
0
    def post(self, request):
        generic_error_response = self.render_json_response({'status': 'error', 'errors': {'non_field_errors': 'Invalid submission.'}})
        try:
            data = json.loads(request.POST.get('data'))
            tip = data.get('tip')
            items = data.get('items')
            first_name = data.get('first_name')
            last_name = data.get('last_name')
            phone_number = data.get('phone_number')
            cc_number = data.get('crimsoncash')
        except (IndexError, ValueError):
            return generic_error_response

        if any(i is None for i in [tip, items, first_name, last_name, phone_number, cc_number]):
            return generic_error_response

        order_form = OrderForm(data={'tip': tip})
        if not order_form.is_valid():
            return self.render_json_response({'status': 'error', 'errors': order_form.errors})
        else:
            tip = order_form.cleaned_data.get('tip')

        order_items = []
        for pk, quantity in items.iteritems():
            order_item_form = OrderItemForm(data={'item': pk, 'quantity': quantity})
            if not order_item_form.is_valid():
                return self.render_json_response({'status': 'error', 'errors': order_item_form.errors})
            else:
                quantity = order_item_form.cleaned_data.get('quantity')
                item = order_item_form.cleaned_data.get('item')
                if quantity > 0:
                    order_items.append((item, quantity))

        # add the phone number country code if necessary
        if not phone_number[:1] == '+' and not phone_number[:1] == '1':
            phone_number = u'+1{}'.format(phone_number)
        elif not phone_number[:1] == '+':
            phone_number = u'+{}'.format(phone_number)

        customer_form = CustomerForm(data={'first_name': first_name, 'last_name': last_name, 'phone': phone_number, 'cc_number': cc_number})
        if not customer_form.is_valid():
            return self.render_json_response({'status': 'error', 'errors': customer_form.errors})

        # if they submitted an order with all quantities = 0
        if not order_items:
            return generic_error_response

        first_name = customer_form.cleaned_data.get('first_name')
        last_name = customer_form.cleaned_data.get('last_name')
        phone_number = customer_form.cleaned_data.get('phone')
        cc_number = customer_form.cleaned_data.get('cc_number')

        customer, created = Customer.objects.get_or_create(
            first_name=first_name,
            last_name=last_name,
            phone=phone_number,
            cc_number=cc_number,
        )

        order = Order.objects.create(
            customer=customer,
            tip=tip,
        )

        m = hashlib.md5()
        m.update('{}{}'.format(order.customer.last_name, order.pk))
        key = m.hexdigest()
        order.key = key
        order.save()

        for item, quantity in order_items:
            order.add_item(item, quantity)

        return self.render_json_response({'status': 'success', 'key': order.key})
    def get_context_data(self, **kwargs):  # 내가 원하는 데이터를 넣을 수 있는 함수
        context = super().get_context_data(**kwargs)  # super() DetailView먼저 실행

        context['form'] = OrderForm(self.request)  # form이라는 변수 추가
        return context
Esempio n. 39
0
 def get_context_data(self, **kwargs):
     context = super().get_context_data(**kwargs)
     context['form'] = OrderForm(
         self.request)  #order forms.py에서 def __init__에서 request받아온다.
     return context
Esempio n. 40
0
 def get_context_data(self, **kwargs):
     context = super().get_context_data(**kwargs)
     # 2. OrderForm 객체 생성시 request 전달, OrderForm 안에서 request에 접근하기 위해서
     context["form"] = OrderForm(self.request)
     return context
Esempio n. 41
0
 def test_order_form_for_empty_validation(self):
     data = {}
     form = OrderForm(data)
     assert form.is_valid() is False, 'Should be False if Form is empty'
Esempio n. 42
0
def get_common_context(request):
    form = OrderForm()
    hform = OrderHForm()
    fform = OrderFForm()
    c = {}
    if request.method == 'POST':
        if request.POST['action'] == 'subscribe':
            em = request.POST.get('email', None)
            if em:
                Subscribe(email=em).save()
                messages.success(request, u'Вы успешно подписались на рассылку.')
            else:
                messages.error(request, u'Необходимо ввести емейл.')
        elif request.POST['action'] == 'homeform':
            hform = OrderHForm(request.POST)
            if hform.is_valid():
                hform.save()
                messages.success(request, u'Ваша заявка успешно отправлена.')
                hform = OrderHForm()
            else:
                c['show_hform'] = True
                messages.error(request, u'Необходимо ввести имя и телефон.')
        elif request.POST['action'] == 'franchajzing':
            fform = OrderFForm(request.POST)
            if fform.is_valid():
                fform.save()
                messages.success(request, u'Ваша заявка успешно отправлена.')
                fform = OrderFForm()
            else:
                print fform.errors
                c['show_fform'] = True
                messages.error(request, u'Необходимо ввести имя и телефон.')
        else:
            form = OrderForm(request.POST)
            if form.is_valid():
                form.save()
                c['request-ok'] = True
            else:
                if request.POST['action'] == 'signup':
                    c['show_signup'] = True
                if request.POST['action'] == 'get':
                    c['show_get'] = True
                if request.POST['action'] == 'gift':
                    c['show_gift'] = True
                messages.error(request, u'Необходимо ввести имя.')

    c['request_url'] = request.path
    c['is_debug'] = settings.DEBUG
    c['reviews'] = Review.objects.all()[:3]
    c['form'] = form
    c['hform'] = hform
    c['fform'] = fform
    c['menu'] = Menu.objects.filter(parent=None)
    c['partners'] = Partner.objects.all()
    c['complex'] = Page.get_by_slug('complex').content
    
    try:
        c['menu_cat'] = Menu.get_by_href(request.path).parent
    except:
        c['menu_cat'] = None
        
    c['siteurl'] = request.get_host().split('.')[0]
    c['phone'] = config_value('MyApp', 'PHONE')
    c.update(csrf(request))
    return c
Esempio n. 43
0
def create_order(request):
    cart = Cart(request)
    # 'if cart.products:' 를 별도로 구성하여 '장바구니가 비었습니다' 안내 페이지로 이동시킬 수 있음
    # 현재 구성은 장바구니가 비어있을 경우, 빈 폼 로드
    products = cart.products  # cart에 담긴 아이템들
    total_price = cart.get_total_price()  # 총 가격
    if products.exists() and request.method == 'POST':
        form = OrderForm(request.POST)
        if form.is_valid():
            order_item_list = []
            order = form.save(commit=False)
            order.total_price = total_price
            order.user = request.user
            order.save()
            # dict-type의 Product 객체 생성
            product_bulk = products.in_bulk()
            for item in cart:
                order_item_obj = OrderWithItem(order=order,
                                               item=item['product'],
                                               price=int(item['price']) * int(item['quantity']),
                                               quantity=item['quantity'])
                # OrderWithItem 객체를 리스트에 추가
                order_item_list.append(order_item_obj)
                product_bulk[item['product'].id].quantity -= item['quantity']
                # 사용자 동작
                if request.user.is_authenticated:
                    pass
                    # user=Foreignkey(User) 이므로 request.user가 authenticated user가 아닐 경우 에러 발생
                    # track_action(user=request.user, verb='bought', content_object=item['product'])

            # bulk_create를 이용한 OrderWithItem db 생성
            order_items = OrderWithItem.objects.bulk_create(order_item_list)
            # bulk_update를 이용한 Product.quantity 업데이트(release version2.2)
            products.bulk_update(product_bulk.values(), ['quantity'])
            # 함께 구매한 아이템 등록
            r = Recommend()
            try:
                r.buy_item(products)
                print('bought in redis')
            except Exception as e:
                print(f'not connect redis:{e}')

            # for order_item in order_items:
            #     print(order_item.order.id)  # 주문번호
            #     print(order_item.item)      # 아이템
            #     print(order_item.price)     # 가격
            #     print(order_item.quantity)  # 수량

            # 주문 완료 시, 장바구니(session) 비우기
            cart.clear_session()
            return render(request, 'order/created.html', {'order': order, 'order_items': order_items})
            # order -> 주문번호, 사용자 성, 이름, 주소, 구매 총 가격
            # order_item -> 구매 아이템 수량, 가격

    else:
        user = User.objects.get(id=request.user.id)

        form = OrderForm(
            initial={'first_name': user.first_name, 'last_name': user.last_name, 'address': user.profile.address,
                     'post_code': user.profile.postal_code})
        print(form['address'])
        return render(request, 'order/create.html', {'cart': cart, 'form': form})
Esempio n. 44
0
 def get_context_data(self, **kwargs): # 자세히보기 페이지에서 주문하기 기능을 위해선 해당 폼을 가져와야하는데 이 함수를 통해서 그 기능을 구현한다.
     context = super().get_context_data(**kwargs) # 디테일 뷰에 있는 데이터를 먼저 만들고나서 내가 만들고자 하는 것을 추가하는 것
     context['form'] = OrderForm(self.request) # orderform은 오더폴더에서 가져온 registerform을 앨리아스 한 것이고 뷰클래스에는 셀프안에 리퀘스트가 있다. 그래서 그냥 적어넣으면 됨
                                               # 그러면 저 리퀘스트를 통해 order폴더 안에 있는 registerform의 리퀘스트와 연동됨. 
     return context
     
Esempio n. 45
0
 def get_context_data(self, **kwargs):
     context = super().get_context_data(**kwargs)
     context['form'] = OrderForm(self.request)
     return context
Esempio n. 46
0
 def get_context_data(self, **kwargs):  # 디테일뷰를 상속받았기에 별도의 함수로 폼을 전달해야한다
     context = super().get_context_data(
         **kwargs)  # 슈퍼를 통해  디테일뷰로 전달받은 데이터를 먼저만들고
     context["form"] = OrderForm(self.request)  # 여기에 내가 원하는 데이터를 추가
     # 뷰 클래스 이기 때문에 셀프안에 리퀘스트가 있다 , 폼을 생성할때 리퀘스트를 전달하게 만들어준다
     return context