Exemplo n.º 1
0
def checkout_view(request, template_name='checkout/checkout.html'):
    """Представление для оформления заказа"""
    if cart.is_empty(request):
        cart_url = urlresolvers.reverse('show_cart')
        return HttpResponseRedirect(cart_url)
    if request.method == 'POST':
        postdata = request.POST.copy()
        form = CheckoutForm(postdata)
        if form.is_valid():
            response = checkout.process(request)
            order_number = response.get('order_number', 0)
            error_message = response.get('message', '')
            if order_number:
                request.session['order_number'] = order_number
                receipt_url = urlresolvers.reverse('checkout_receipt')
                return HttpResponseRedirect(receipt_url)
        else:
            error_message = _(u'Correct the errors below')
            if request.user.is_authenticated():
                user_profile = profile.retrieve(request)
                form = CheckoutForm(instance=user_profile)
            else:
                form = CheckoutForm()
    else:
        form = CheckoutForm()
    page_title = _(u'Checkout')
    return render_to_response(template_name,
                              locals(),
                              context_instance=RequestContext(request))
Exemplo n.º 2
0
def checkout_view(request, template_name='checkout/checkout.html'):
    """Представление для оформления заказа"""
    if cart.is_empty(request):
        cart_url = urlresolvers.reverse('show_cart')
        return HttpResponseRedirect(cart_url)
    if request.method == 'POST':
        postdata = request.POST.copy()
        form = CheckoutForm(postdata)
        if form.is_valid():
            response = checkout.process(request)
            order_number = response.get('order_number', 0)
            error_message = response.get('message', '')
            if order_number:
                request.session['order_number'] = order_number
                receipt_url = urlresolvers.reverse('checkout_receipt')
                return HttpResponseRedirect(receipt_url)
        else:
            error_message = _(u'Correct the errors below')
            if request.user.is_authenticated():
                user_profile = profile.retrieve(request)
                form = CheckoutForm(instance=user_profile)
            else:
                form = CheckoutForm()
    else:
        form = CheckoutForm()
    page_title = _(u'Checkout')
    return render_to_response(template_name, locals(),
                              context_instance=RequestContext(request))
Exemplo n.º 3
0
def contact(request, template_name='checkout/checkout.html'):
    if cart.is_empty(request):
        cart_url = urlresolvers.reverse('show_cart')
        return HttpResponseRedirect(cart_url)

    if request.method == 'POST':
        form = ContactForm(request.POST)
        phone = request.POST['phone']

        if form.is_valid():

            form.clean_phone()
            response = checkout.process(request)

            order = response.get('order', 0)
            order_id = order.id

            if order_id:
                request.session['order_id'] = order_id
                receipt_url = urlresolvers.reverse('checkout_receipt')

                return HttpResponseRedirect(receipt_url)
        else:
            form = ContactForm(request.POST)
            return render(request, 'checkout/checkout.html', {
                'form': form,
                'error': form.errors,
            })
    else:
        form = ContactForm()
        # post = Post.objects.all()

    return render_to_response(template_name, locals(),
                              context_instance=RequestContext(request))
Exemplo n.º 4
0
def contact(request, template_name='checkout/checkout.html'):
    if cart.is_empty(request):
        cart_url = urlresolvers.reverse('show_cart')
        return HttpResponseRedirect(cart_url)
    if request.method == 'POST':
        form = ContactForm(request.POST)
        phone = request.POST['phone']
        if form.is_valid():
            form.clean_phone()
            response = checkout.process(request)
            order_number = response.get('order_number', 0)
            order = response.get('order', 0)
            # получаем список заказынных товаров для передачи в письмо
            order_item = OrderItem.objects.filter(order_id=order.id)
            transaction = order.transaction_id
            items = ''
            for item in order_item:
                items = items + '%s \n' % item.name
            if order_number:
                request.session['order_number'] = order_number
                receipt_url = urlresolvers.reverse('checkout_receipt')

                # отправка письма админу
                subject = u'fish153.ru заявка от %s операция: %s' % (request.POST['shipping_name'], transaction)
                message = u'Заказ №: %s \n Имя: %s \n телефон: %s \n почта: %s \n id: %s \n Товары: %s' % (order_number, request.POST['shipping_name'], request.POST['phone'], request.POST['email'], order.id, items)
                send_mail(subject, message, '*****@*****.**', ['*****@*****.**'], fail_silently=False)

                # отправка html письма пользователю
                html_content = '<p>This is an <strong>important</strong> message.</p>'
                context_dict = {
                    'transaction': transaction,
                    'id': order.id,
                    'items': items,
                }
                message = render_to_string('checkout/email.html', context_dict)
                from_email = '*****@*****.**'
                to = '%s' % request.POST['email']
                msg = EmailMultiAlternatives(subject, message, from_email, [to])
                msg.content_subtype = "html"
                msg.send()

                return HttpResponseRedirect(receipt_url)
        else:

            # form = ContactForm(request.POST)
            return render(request, 'checkout/checkout.html', {
                'form': form,
                'error': form.errors,
            })
    else:
        form = ContactForm()
        # post = Post.objects.all()

    return render_to_response(template_name, locals(),
                              context_instance=RequestContext(request))
Exemplo n.º 5
0
def order_form(request, form):
    dajax = Dajax()
    form = ContactForm(deserialize_form(form))
    dajax.add_css_class('#id_phone', 'error')
    if form.is_valid():
        dajax.remove_css_class('#order_form input', 'error')
        form.clean_phone()
        response = checkout.process(request)
        order_number = response.get('order_number', 0)
        order = response.get('order', 0)
        # получаем список заказынных товаров для передачи в письмо
        order_item = OrderItem.objects.filter(order_id=order.id)

        # test
        # dajax.assign('#id_email', 'value', errorText)

        items = ''
        for item in order_item:
            items = items + '%s \n' % item.name
        if order_number:
            request.session['order_number'] = order_number
            subject = u'7works заявка от %s' % request.POST['shipping_name']
            message = u'Заказ №: %s \n Имя: %s \n телефон: %s \n почта: %s \n id: %s \n Товары: \n %s' % (
                order_number, request.POST['shipping_name'],
                request.POST['phone'], request.POST['email'], order.id, items)
            send_mail(subject,
                      message,
                      '*****@*****.**', ['*****@*****.**'],
                      fail_silently=False)

    else:
        dajax.remove_css_class('#my_form input', 'error')
        for error in form.errors:
            errorText = ''
            if error == 'phone':
                errorText = u'формат терефона: 89237775522'
            elif error == 'email':
                errorText = u'формат email: [email protected]'
            dajax.add_css_class('#id_%s' % error, 'error')
            dajax.assign('#id_%s' % error, 'placeholder', errorText)

    return dajax.json()
Exemplo n.º 6
0
def order_form(request, form):
    dajax = Dajax()
    form = ContactForm(deserialize_form(form))
    dajax.add_css_class('#id_phone', 'error')
    if form.is_valid():
        dajax.remove_css_class('#order_form input', 'error')
        form.clean_phone()
        response = checkout.process(request)
        order_number = response.get('order_number', 0)
        order = response.get('order', 0)
        # получаем список заказынных товаров для передачи в письмо
        order_item = OrderItem.objects.filter(order_id=order.id)

        # test
        # dajax.assign('#id_email', 'value', errorText)

        items = ''
        for item in order_item:
            items = items + '%s \n' % item.name
        if order_number:
            request.session['order_number'] = order_number
            subject = u'7works заявка от %s' % request.POST['shipping_name']
            message = u'Заказ №: %s \n Имя: %s \n телефон: %s \n почта: %s \n id: %s \n Товары: \n %s' % (order_number, request.POST['shipping_name'], request.POST['phone'], request.POST['email'], order.id, items)
            send_mail(subject, message, '*****@*****.**', ['*****@*****.**'], fail_silently=False)

    else:
        dajax.remove_css_class('#my_form input', 'error')
        for error in form.errors:
            errorText = ''
            if error == 'phone':
                errorText = u'формат терефона: 89237775522'
            elif error == 'email':
                errorText = u'формат email: [email protected]'
            dajax.add_css_class('#id_%s' % error, 'error')
            dajax.assign('#id_%s' % error, 'placeholder', errorText)

    return dajax.json()
Exemplo n.º 7
0
def contact(request, template_name='checkout/checkout.html'):

    device = change_template_for_device(request, template_name)['device']
    request.breadcrumbs(u'Данные получателя', request.path_info)

    if cart.is_empty(request):
        cart_url = urlresolvers.reverse('show_cart')
        return HttpResponseRedirect(cart_url)

    if request.method == 'POST':
        form = ContactForm(request.POST)
        phone = request.POST['phone']

        if form.is_valid():

            form.clean_phone()

            """создание пользователя при оформлении заказа если не зарегистрирован"""
            #1 создать user
            #2 отправить письмо
            #3 создать User_profile
            if not request.user.is_authenticated():
                name , nu = request.POST['email'].split('@')[:2]
                try:
                    login_exist = User.objects.filter(username__icontains=name)
                    if login_exist:
                        name = '%s%s' % (name, login_exist.count())
                except Exception:
                    name = name

                new_user = User(username=name, email=request.POST['email'])
                password = User.objects.make_random_password()
                new_user.set_password(password)
                new_user.save()

                context_dict = {
                    'name': request.POST['shipping_name'],
                    'username': new_user.username,
                    'password': password,
                }

                subject = u'Регистрация на сайте www.polythai.ru'
                message = render_to_string('checkout/reg_email.html', context_dict)
                from_email = '*****@*****.**'
                to = new_user.email
                msg = EmailMultiAlternatives(subject, message, from_email, [to])
                msg.content_subtype = "html"
                msg.send()

                user = authenticate(username=name, password=password)
                if user is not None:
                    if user.is_active:
                        login(request, user)
                        profile.set(request)


            """процесс создания заказа на основе того что было в корзине и на основе введенных данных"""
            response = checkout.process(request)

            order = response.get('order', 0)
            order_id = order.id

            if order_id:
                request.session['order_id'] = order_id
                receipt_url = urlresolvers.reverse('checkout_receipt')

                return HttpResponseRedirect(receipt_url)
        else:
            form = ContactForm(request.POST)
            return render(request, 'checkout/checkout.html', {
                'form': form,
                'error': form.errors,
            })
    else: #заполняем форму получателя если пользователь авторизирован
        if  request.user.is_authenticated():
            user_profile = profile.retrieve(request)
            form = ContactForm(instance=user_profile)
        else:
            form = ContactForm()

    return render_to_response(template_name, locals(),
                              context_instance=RequestContext(request))
Exemplo n.º 8
0
def contact(request, template_name='checkout/checkout.html'):

    request.breadcrumbs(u'Данные получателя', request.path_info)

    if cart.is_empty(request):
        cart_url = urlresolvers.reverse('show_cart')
        return HttpResponseRedirect(cart_url)

    if request.method == 'POST':
        form = ContactForm(request.POST)
        phone = request.POST['phone']

        if form.is_valid():

            form.clean_phone()
            """создание пользователя при оформлении заказа если
            не зарегистрирован"""
            #1 создать user
            #2 отправить письмо
            #3 создать User_profile
            if not request.user.is_authenticated():
                name, nu = request.POST['email'].split('@')[:2]
                try:
                    login_exist = User.objects.filter(username__icontains=name)
                    if login_exist:
                        name = '%s%s' % (name, login_exist.count())
                except Exception:
                    name = name

                new_user = User(username=name, email=request.POST['email'])
                password = User.objects.make_random_password()
                new_user.set_password(password)
                new_user.save()

                context_dict = {
                    'name': request.POST['shipping_name'],
                    'username': new_user.username,
                    'password': password,
                }

                subject = u'Регистрация на сайте www.polythai.ru'
                message = render_to_string('checkout/reg_email.html',
                                           context_dict)

                from_email = '*****@*****.**'
                to = new_user.email
                msg = EmailMultiAlternatives(subject, message, from_email,
                                             [to])
                msg.content_subtype = "html"
                msg.send()

                user = authenticate(username=name, password=password)
                if user is not None:
                    if user.is_active:
                        login(request, user)
                        profile.set(request)
            """процесс создания заказа на основе того что было в корзине
            и на основе введенных данных"""
            response = checkout.process(request)
            order = response.get('order', 0)
            order_id = order.id

            if order_id:
                request.session['order_id'] = order_id
                receipt_url = urlresolvers.reverse('checkout_receipt')
                return HttpResponseRedirect(receipt_url)
        else:
            form = ContactForm(request.POST)
            return render(request, 'checkout/checkout.html', {
                'form': form,
                'error': form.errors,
            })
    else:  # заполняем форму получателя если пользователь авторизирован
        if request.user.is_authenticated():
            user_profile = profile.retrieve(request)
            form = ContactForm(instance=user_profile)
        else:
            form = ContactForm()

    return render_to_response(template_name,
                              locals(),
                              context_instance=RequestContext(request))