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)
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)
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 })
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))
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))
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))
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())
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})
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))
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))
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))
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())
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)