Ejemplo n.º 1
0
def leave_bid(request):
    form = OrderForm(request.POST or None)
    context = {'form': form}
    if request.method == 'GET':
        return render(request, 'bid.html', context)
    else:
        if form.is_valid():
            form.save()
            context['info'] = 'Order accepted'
        else:
            context['info'] = 'Invalid values'
    return render(request, 'bid.html', context)
Ejemplo n.º 2
0
def order_details(request, id):
    product = Mobile.objects.get(id=id)
    form = OrderForm(initial={"user": request.user, "product": product})
    context = {}
    context["form"] = form
    if request.method == "POST":
        form = OrderForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect("cart")
        else:
            form
    return render(request, "shop/order.html", context)
Ejemplo n.º 3
0
def orderadd(request):
    products = Product.objects.all()
    if request.method == 'POST':
        form = OrderForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect('/orders')
    else:
        form = OrderForm()
    return render(request, 'shop/orderadd.html', {
        'form': form,
        'products': products
    })
Ejemplo n.º 4
0
def shop_order(request,
               template,
               extra_context=None,
               context_processors=None,
               template_loader=loader):
    o, create = Order.objects.get_or_create(session=request.shop_session,
                                            is_history=False)

    if request.method == 'POST':
        form = OrderForm(request.POST, instance=o)
        if form.is_valid():
            form.save()

            if o.is_delivery_pay():
                o.is_delivery = True
                o.cost_delivery = o.is_delivery_pay()

            o.is_history = True
            o.save()

            if o.email:
                domain = Site.objects.get_current().domain
                letter_send_mail(
                    'mail/order_accepted.html',
                    _('Order is accepted. Order %(id)d in %(domain)s.') % {
                        'id': o.id,
                        'domain': domain
                    },
                    [
                        o.email,
                    ],
                    {
                        'obj': o,
                        'domain': domain,
                    },
                )

            return HttpResponseRedirect('/basket/order/thanks/')
    else:
        form = OrderForm()

    c = RequestContext(request, {'o': o, 'form': form}, context_processors)

    if extra_context:
        for key, value in extra_context.items():
            if callable(value): c[key] = value()
            else: c[key] = value
    t = template_loader.get_template(template)

    return HttpResponse(t.render(c))
Ejemplo n.º 5
0
def order(request):
    c = get_common_context(request)
    if not request.user.is_authenticated():
        return HttpResponseRedirect('/cart/')
    profile = request.user.get_profile()
    module = OrderDataFizForm
    
    if request.method == 'GET':
        form = module(instance=profile.get_orderdata(), initial={'fio': profile.fio})
        orderform = OrderForm()
    if request.method == 'POST':
        form = module(request.POST, instance=profile.get_orderdata())
        orderform = OrderForm(request.POST)            
        if form.is_valid() and orderform.is_valid():
            f = form.save(commit=False)
            f.user = request.user
            f.save()
            profile.fio = form['fio'].value()
            profile.save()
            of = orderform.save(commit=False)
            of.user = request.user
            of.savecommit()
            return HttpResponseRedirect('/order-ok/')
        
    c['form'] = form
    c['orderform'] = orderform
    return render_to_response('order.html', c, context_instance=RequestContext(request))
Ejemplo n.º 6
0
def cart(request):
    if request.method == 'POST':
        form = OrderForm(request.POST)
        if request.user.is_authenticated():
            del(form.fields['captcha'])
            form.full_clean()
        if form.is_valid():
            order = form.save(commit=False)
            order.save()
            data = form.cleaned_data
            # Заполняем у модели Order товары
            prds = ProductCost.objects.filter(id__in=data['products'].keys())
            total_cost = 0
            for prd in prds:
                op = OrderedProduct(product=prd, order=order, count=data['products'][prd.id])
                op.save()
                total_cost += Decimal(prd.cost) * data['products'][prd.id]
            if total_cost < data['delivery'].free_from:
                total_cost += Decimal(data['delivery'].cost)
            order.amount = str(total_cost)
            order.save()
            return HttpResponseRedirect('/order/'+str(order.link))      
    else:
        form = OrderForm()
        products = []
        if request.user.is_authenticated():
            del(form.fields['captcha'])
    if 'products' in request.session.keys() and request.session['products']:
        products = ProductCost.objects.filter(id__in=request.session['products'])
            
    return render_to_response('cart.html', {'products': products, 'deliveries': Delivery.objects.all(),'order_form': form, 'max_products': range(1, settings.PDORUCT_MAX_ORDER+1)}, context_instance=RequestContext(request))
Ejemplo n.º 7
0
def order_detail(request):
    currencies = Currency.objects.all()
    categories = Category.objects.all()

    if 'cart' not in request.session:
        request.session['cart'] = list()
    cart_products = Product.objects.filter(id__in=request.session['cart'])
    cart_total_price = 0
    for product in cart_products:
        cart_total_price = cart_total_price + product.product_price
    if request.method == "POST":
        form = OrderForm(request.POST)
        if form.is_valid():
            order1 = form.save()
            print('form saved')
            order1.product.add()
            body = render_to_string("email.html", locals(), request)
            email = EmailMessage('Subject', body, to=['*****@*****.**'])
            email.content_subtype = 'html'
            email.send()
            messages.success(request, "Отлично! Ваше письмо отправлено!")
        else:
            messages.warning(request, "Упс! Проверьте заполнение полей!")
    else:
        form = OrderForm()

    return render(request, 'order_form.html', locals())
Ejemplo n.º 8
0
def order(request):
    if request.POST:
         form = OrderForm(request.POST)
         if form.is_valid():
                order = form.save()
                order.save()
                total_amount = int(((order.product_price * order.product_amount) + order.product_shipment_cost) * 100)
                return HttpResponseRedirect(get_payment_url(total_amount, order.id))
         else:
                return direct_to_template(request, 'bestel-rustgever.html', extra_context={'error': True, 'form': form,})
    else:
            form = OrderForm()
            return direct_to_template(request, 'bestel-rustgever.html', extra_context={'form': form})
Ejemplo n.º 9
0
def order(request):
    c = get_common_context(request)
    c['items'] = c['cart_working'].get_content()
    if request.method == 'GET':
        c['form'] = OrderForm()
    else:
        form = OrderForm(request.POST)
        if form.is_valid():
            order = form.save(request=request)
            c['order'] = order
            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))
Ejemplo n.º 10
0
def shop_order(request, template, extra_context=None, context_processors=None, template_loader=loader):
	o, create = Order.objects.get_or_create(session=request.shop_session, is_history=False)
	
	if request.method == 'POST':
		form = OrderForm(request.POST, instance=o)
		if form.is_valid():
			form.save()

			if o.is_delivery_pay():
				o.is_delivery = True
				o.cost_delivery = o.is_delivery_pay()
				
			o.is_history = True
			o.save()
			
			if o.email:
				domain = Site.objects.get_current().domain
				letter_send_mail(
					'mail/order_accepted.html', 
					_('Order is accepted. Order %(id)d in %(domain)s.') % {'id':o.id, 'domain':domain},
					[o.email,], 
					{'obj':o, 'domain':domain,},
				)
			
			return HttpResponseRedirect('/basket/order/thanks/')
	else: form = OrderForm()
		
	c = RequestContext(request, {'o':o, 'form':form}, context_processors)
	
	if extra_context:
		for key, value in extra_context.items():
			if callable(value): c[key] = value()
			else: c[key] = value
	t = template_loader.get_template(template)
	
	return HttpResponse(t.render(c))
Ejemplo n.º 11
0
def cartorder(request):
	cart = request.session.get('cart').split(',')

	form = OrderForm(request.POST or None)
	success = None

	if form.is_valid():
		order = form.save(commit = False)
		order.save()

		order.doors = Door.objects.filter(id__in = cart)
		order.save()

		request.session['cart'] = ''
		success = u'Ваш заказ удачно сохранен.'

	return render_to_response('shop/order.html',
							  {'form': form,
							   'success': success},
							  context_instance = RequestContext(request))
Ejemplo n.º 12
0
def order(request):
    all_categories = Category.objects.all()
    cart = Cart(request)
    if request.method == "POST":
        user = User.objects.get(username=request.user.username)
        new_order = Order(user=user)
        form = OrderForm(request.POST, instance=new_order)
        if form.is_valid():
            order = form.save()
            email_messaages = "你的购物内容如下:\n"
            for item in cart:
                OrderItem.objects.create(order=order,
                                         product=item.product,
                                         price=item.product.price,
                                         quantity=item.quantity)
                email_messaages += "\n" + "商品: {}, {}元, {}件".format(
                    item.product, item.product.price, item.quantity)
            email_messaages += "\n以上共计{}元\nhttp://fanggaoshang.cn感谢你的订购!".format(
                cart.summary())
            cart.clear()
            messages.add_message(request, messages.INFO, '订单已保存,我们会尽快处理')
            send_mail(
                "感谢你的订购",
                email_messaages,
                "迷你小电商<*****@*****.**>",
                [request.user.email],
            )
            send_mail(
                "有人订购了产品",
                email_messaages,
                "迷你小电商<*****@*****.**>",
                ['*****@*****.**'],
            )
            return redirect('/myorders/')
    else:
        form = OrderForm()

    return render(request, 'order.html', locals())
Ejemplo n.º 13
0
def add_order(req):
    if req.method == 'POST':
        if 'basket' not in req.session:
            return redirect('general')
        form = OrderForm(req.POST)
        if form.is_valid():
            items_inv = req.session.get('basket')
            counts = req.session.get('item_count')
            l = []
            s = 0
            items = [x for x in zip(items_inv, counts)]
            for item, count in items:
                i = get_item(str(item))
                l.append([i, count])
                if type(i) == Share:
                    s += i.price * count
                elif i.price_opt and count > 1:
                    s += i.price_opt * count
                else:
                    s += i.price * count
            items = pickle.dumps(items)
            context = dict()
            context['items'] = l
            order = form.save(commit=False)
            try:
                client = Client.objects.get(email=order.email)
            except Client.DoesNotExist:
                client = Client(email=order.email)
                client.save()
            finally:
                order.link_client = client
            context['pay'] = s
            tmp = None
            if client.discount > 0:
                tmp = client.discount
                tmp = s * tmp / 100
                context['pay'] = str(s) + '- {0}% = '.format(client.discount) + str(round(s - tmp, 2))
            order.items = items
            order.save()
            context['payment'] = Info.objects.get(pk=4)
            del req.session['basket']
            del req.session['item_count']
            tasks.message_send.delay(context, order)
            # connection = mail.get_connection()
            # email1 = mail.EmailMessage(
            #     'ELEKTROSWIT: Спасибо за покупку!',
            #     ''.join(str(get_template('mail_order_usr/index.html').render(context))),
            #     EMAIL_HOST_USER,
            #     [order.email],
            #     connection=connection
            # )
            # context['to_admin'] = True
            # context['email'] = order.email
            # context['message'] = order.message
            # context['phone'] = order.phone
            # email2 = mail.EmailMessage(
            #     'ELEKTROSWIT: Поступил новый заказ!',
            #     ''.join(str(get_template('mail_order_usr/index.html').render(context))),
            #     EMAIL_HOST_USER,
            #     ['*****@*****.**'],
            #     connection=connection
            # )
            # email1.content_subtype = 'html'
            # email2.content_subtype = 'html'
            # email1.send(fail_silently=True)
            # email2.send(fail_silently=True)
            # connection.close()
            ######
            # send_mail(
            #     'ELEKTROSWIT: Спасибо за покупку!',
            #     ' ',
            #     '*****@*****.**',
            #     [order.email],
            #     fail_silently=True,
            #     html_message=get_template('mail_order_usr/index.html').render(context)
            # )

            # send_mail(
            #     'ELEKTROSWIT: Поступил новый заказ!',
            #     ' ',
            #     '*****@*****.**',
            #     ['*****@*****.**'],
            #     fail_silently=True,
            #     html_message=get_template('mail_order_usr/index.html').render(context)
            # )
            return redirect('general')
        else:
            return show_basket(req, form)