Beispiel #1
0
def admin_profile_edit(request):
    if request.POST:
        print(request.POST)
        user = User.objects.get(id=int(request.POST.get('id')))
        print(request.POST.get('block_user'))
        if request.POST.get('block_user'):
            print('disable user')
            user.is_active = False
            user.save()
            return HttpResponseRedirect('/cp')
        else:
            user.is_active = True
            user.save()
        form = UpdateForm(request.POST, request.FILES, instance=user)
        print(form.errors)
        if form.is_valid():
            user = form.save()
            if request.POST.get('ismale'):
                user.genre = True
            if request.POST.get('isfemale'):
                user.genre = False
            if request.POST.get('fav_cat1') != '0':
                user.fav_category1_id = int(request.POST.get('fav_cat1'))
            else:
                user.fav_category1 = None
            if request.POST.get('fav_cat2') != '0':
                user.fav_category2_id = int(request.POST.get('fav_cat2'))
            else:
                user.fav_category2 = None
            if request.POST.get('fav_cat3') != '0':
                user.fav_category3_id = int(request.POST.get('fav_cat3'))
            else:
                user.fav_category3 = None
            if request.POST.get('fav_cat4') != '0':
                user.fav_category4_id = int(request.POST.get('fav_cat4'))
            else:
                user.fav_category4 = None

            if request.POST.get('password1') == request.POST.get(
                    'password2'
            ) and request.POST.get('password1') != '' and request.POST.get(
                    'password2') != '':
                print('Change password')
                user.set_password(request.POST.get('password1'))
            else:
                print('NOT Change password')
            user.save()
            return HttpResponseRedirect('/cp')
        else:
            form = UpdateForm()
        return HttpResponseRedirect("/cp")
Beispiel #2
0
def checkout(request):
    show_tags = True
    if request.POST:
        if request.POST.get('form_type') == 'user_info':
            client = request.user
            mail_tmp = client.is_allow_email
            form = UpdateForm(request.POST, instance=request.user)
            if form.is_valid():
                form.save()
                client.profile_ok = True
                client.is_allow_email = mail_tmp
                client.save(force_update=True)

                return HttpResponseRedirect('/checkout/')
            else:
                client = request.user
                form = UpdateForm(instance=client)
                return HttpResponseRedirect('/checkout/')

        if request.POST.get('form_type') == 'checkout':
            order_code = create_password()
            if request.user.used_promo:
                promo_id = request.user.used_promo.id
            else:
                promo_id = None
            order = Order.objects.create(
                client=request.user,
                promo_code_id=promo_id,
                order_code=order_code,
                payment_id=int(request.POST.get('payment')),
                shipping_id=int(request.POST.get('shipping')))
            order.save(force_update=True)
            all_cart_items = Cart.objects.filter(client_id=request.user.id)
            for item in all_cart_items:
                ItemsInOrder.objects.create(order_id=order.id,
                                            item_id=item.item.id,
                                            number=item.number)
                item.item.item.buys = item.item.item.buys + 1
                item.item.item.save(force_update=True)
            all_cart_items.delete()
            request.user.used_promo = None

            new_order = Order.objects.get(id=order.id)

            want_to_use_bonuse = int(request.POST.get('form_use_bonuses'))
            print('want_to_use_bonuse', want_to_use_bonuse)
            print('user avaialble bonese /2', request.user.bonuses / 2)
            print('request.user.bonuses1', request.user.bonuses)
            if want_to_use_bonuse > 0 and want_to_use_bonuse <= int(
                    request.user.bonuses / 2):
                request.user.bonuses -= want_to_use_bonuse
                new_order.bonuses = want_to_use_bonuse
                request.user.save(force_update=True)
                print('request.user.bonuses2', request.user.bonuses)
            print('cart cost before', new_order.total_price_with_code)
            new_order.save(force_update=True)
            print('cart cost after', new_order.total_price_with_code)
            print('request.user.bonuses3', request.user.bonuses)
            request.user.bonuses += int(
                float(new_order.total_price_with_code) * (3 / 100))
            request.user.save(force_update=True)
            print('int(float(new_order.total_price_with_code) * (3/100))',
                  int(float(new_order.total_price_with_code) * (3 / 100)))
            print('request.user.bonuses4', request.user.bonuses)

            # msg_html = render_to_string('email/new_order.html', {'order': new_order})
            # send_mail('Заказ успешно размещен', None, '*****@*****.**', [request.user.email],
            #           fail_silently=False, html_message=msg_html)
            # send_mail('Новый заказ', None, '*****@*****.**', ['*****@*****.**'],
            #           fail_silently=False, html_message=msg_html)
            return HttpResponseRedirect('/order/{}'.format(
                new_order.order_code))

        if request.POST.get('form_type') == 'checkout_guest':
            print(request.POST)
            s_key = request.session.session_key
            guest = Guest.objects.get(session=s_key)
            name = request.POST.get('name')
            family = request.POST.get('family')
            otchestvo = request.POST.get('otchestvo')
            email = request.POST.get('email')
            phone = request.POST.get('phone')
            country = request.POST.get('country')
            city = request.POST.get('city')
            post_code = request.POST.get('post_code')
            address = request.POST.get('address')
            shipping = int(request.POST.get('shipping'))
            payment = int(request.POST.get('payment'))
            with_register = request.POST.get('with_register')
            user = None
            order_code = create_password()
            register = False

            if guest.used_promo:
                promo_id = guest.used_promo.id
                print('With promo')
            else:
                promo_id = None
                print('With no promo')

            if request.POST.get('with_register') == 'on':
                print('With register')
                register = True
                password = create_password()
                user = User.objects.create_user(email=email,
                                                name=name,
                                                family=family,
                                                otchestvo=otchestvo,
                                                country=country,
                                                city=city,
                                                post_code=post_code,
                                                phone=phone,
                                                address=address,
                                                profile_ok=True,
                                                password=password)
                # msg_html = render_to_string('email/register.html', {'login': email, 'password': password})
                # send_mail('Регистрация на сайте LAKSHMI888', None, '*****@*****.**', [email],
                #           fail_silently=False, html_message=msg_html)
            else:
                guest.email = email
                guest.name = name
                guest.family = family
                guest.otchestvo = otchestvo
                guest.country = country
                guest.city = city
                guest.post_code = post_code
                guest.phone = phone
                guest.address = address
                guest.save(force_update=True)

            if user:
                order = Order.objects.create(
                    client=user,
                    promo_code_id=promo_id,
                    order_code=order_code,
                    payment_id=int(request.POST.get('payment')),
                    shipping_id=int(request.POST.get('shipping')))
            else:
                order = Order.objects.create(
                    guest=guest,
                    promo_code_id=promo_id,
                    order_code=order_code,
                    payment_id=int(request.POST.get('payment')),
                    shipping_id=int(request.POST.get('shipping')))
            order.save(force_update=True)
            all_cart_items = Cart.objects.filter(guest_id=guest.id)
            for item in all_cart_items:
                ItemsInOrder.objects.create(order_id=order.id,
                                            item_id=item.item.id,
                                            number=item.number)
                item.item.item.buys = item.item.item.buys + 1
                item.item.item.save(force_update=True)
            all_cart_items.delete()

            guest.used_promo = None
            guest.save(force_update=True)
            new_order = Order.objects.get(id=order.id)
            print('total_cart_price', new_order.total_price)
            if user:
                user.bonuses += int(
                    float(new_order.total_price_with_code) * (3 / 100))
                user.save(force_update=True)
            # msg_html = render_to_string('email/new_order.html', {'order': new_order})
            # send_mail('Заказ успешно размещен', None, '*****@*****.**', [email],
            #           fail_silently=False, html_message=msg_html)
            # send_mail('Новый заказ', None, '*****@*****.**', ['*****@*****.**'],
            #           fail_silently=False, html_message=msg_html)
            print('Email sent')
            return HttpResponseRedirect('/order/{}'.format(
                new_order.order_code))


#-------------------------------------------------------------------------------GET request
    shipping = OrderShipping.objects.all()
    payment = OrderPayment.objects.all()

    if request.user.is_authenticated:
        client = request.user
        all_bonuses = client.bonuses
        use_bonuses = round(all_bonuses / 2)
        form = UpdateForm(instance=client)
        return render(request, 'page/checkout.html', locals())
    else:
        form = UpdateForm()
        return render(request, 'page/checkout.html', locals())
Beispiel #3
0
def checkout(request):
    show_tags = True
    if request.POST:

        if request.POST.get('form_type') == 'user_info':
            client = request.user
            mail_tmp = client.is_allow_email
            form = UpdateForm(request.POST, instance=request.user)
            if form.is_valid():
                form.save()
                client.profile_ok = True
                client.is_allow_email = mail_tmp
                client.save(force_update=True)

                return HttpResponseRedirect('/checkout/')
            else:
                client = request.user
                form = UpdateForm(instance=client)
                return HttpResponseRedirect('/checkout/')

        if request.POST.get('form_type') == 'checkout':
            order_code = create_password()
            if request.user.used_promo:
                promo_id = request.user.used_promo.id
            else:
                promo_id = None
            order = Order.objects.create(client=request.user, promo_code_id=promo_id, order_code=order_code,
                                         payment_id=int(request.POST.get('payment')),
                                         shipping_id=int(request.POST.get('shipping')))
            order.save(force_update=True)
            all_cart_items = Cart.objects.filter(client_id=request.user.id)
            for item in all_cart_items:
                ItemsInOrder.objects.create(order_id=order.id, item_id=item.item.id, number=item.number,
                                            current_price=item.item.price)
                item.item.buys = item.item.buys + 1
                item.item.save(force_update=True)
            all_cart_items.delete()
            request.user.used_promo = None
            request.user.save(force_update=True)
            new_order = Order.objects.get(id=order.id)
            msg_html = render_to_string('email/new_order.html', {'order': new_order})
            send_mail('Заказ успешно размещен', None, '*****@*****.**', [request.user.email],
                      fail_silently=False, html_message=msg_html)
            send_mail('Новый заказ', None, '*****@*****.**', ['*****@*****.**'],
                      fail_silently=False, html_message=msg_html)
            return HttpResponseRedirect('/order/{}'.format(new_order.order_code))


        if request.POST.get('form_type') == 'checkout_guest':

            s_key = request.session.session_key
            guest = Guest.objects.get(session=s_key)
            name = request.POST.get('name')
            family = request.POST.get('family')
            otchestvo = request.POST.get('otchestvo')
            email = request.POST.get('email')
            phone = request.POST.get('phone')
            country = request.POST.get('country')
            city = request.POST.get('city')
            post_code = request.POST.get('post_code')
            address = request.POST.get('address')
            shipping = int(request.POST.get('shipping'))
            payment = int(request.POST.get('payment'))
            with_register=request.POST.get('with_register')
            user = None
            order_code = create_password()




            if guest.used_promo:
                promo_id = guest.used_promo.id
                print('With promo')
            else:
                promo_id = None
                print('With no promo')

            if request.POST.get('with_register') == 'on':
                print('With register')
                password = create_password()
                user = User.objects.create_user(email=email, name=name, family=family, otchestvo=otchestvo, country=country,
                                         city=city, post_code=post_code, phone=phone, address=address, profile_ok=True,
                                         password=password)
                msg_html = render_to_string('email/register.html', {'login': email, 'password': password})
                send_mail('Регистрация на сайте LAKSHMI888', None, '*****@*****.**', [email],
                          fail_silently=False, html_message=msg_html)
            else:
                guest.email = email
                guest.name = name
                guest.family = family
                guest.otchestvo = otchestvo
                guest.country = country
                guest.city = city
                guest.post_code = post_code
                guest.phone = phone
                guest.address = address
                guest.save(force_update=True)

            if user:
                order = Order.objects.create(client=user, promo_code_id=promo_id, order_code=order_code,
                                         payment_id=int(request.POST.get('payment')),
                                         shipping_id=int(request.POST.get('shipping')))
            else:
                order = Order.objects.create(guest=guest, promo_code_id=promo_id, order_code=order_code,
                                             payment_id=int(request.POST.get('payment')),
                                             shipping_id=int(request.POST.get('shipping')))
            order.save(force_update=True)
            all_cart_items = Cart.objects.filter(guest_id=guest.id)
            for item in all_cart_items:
                ItemsInOrder.objects.create(order_id=order.id, item_id=item.item.id, number=item.number,
                                            current_price=item.item.price)
                item.item.buys = item.item.buys + 1
                item.item.save(force_update=True)
            all_cart_items.delete()
            guest.used_promo = None
            guest.save(force_update=True)
            new_order = Order.objects.get(id=order.id)
            msg_html = render_to_string('email/new_order.html', {'order': new_order})
            send_mail('Заказ успешно размещен', None, '*****@*****.**', [email],
                      fail_silently=False, html_message=msg_html)
            send_mail('Новый заказ', None, '*****@*****.**', ['*****@*****.**'],
                      fail_silently=False, html_message=msg_html)
            print('Email sent')
            return HttpResponseRedirect('/order/{}'.format(new_order.order_code))

        if request.POST.get('form_type') == 'new_checkout':
            order_code = create_password()
            is_need_photo = False
            payment = request.POST.get('payment')
            if payment == 'nal':
                payment_type = 'Наличные'
            elif payment == 'sber':
                payment_type = 'Сбербанк'
            receiver_name = request.POST.get('receiver-name')
            receiver_phone = request.POST.get('receiver-phone')
            sender_name = request.POST.get('sender-name')
            sender_phone = request.POST.get('sender-phone')
            sender_email = request.POST.get('sender-email')
            order_date = request.POST.get('order-date')
            order_time = request.POST.get('order-time')
            receiver_address = request.POST.get('receiver-address')
            is_need_photo = request.POST.get('order-photo')
            if is_need_photo:
                is_need_photo = True
            card_text = request.POST.get('order-card')


            shipping = request.POST.get('shipping')


            order = Order.objects.create(order_code=order_code,
                                         receiver_name=receiver_name,
                                        receiver_phone=receiver_phone,
                                        sender_name =sender_name,
                                        sender_phone =sender_phone,
                                        sender_email =sender_email,
                                        order_date =order_date,
                                        order_time =order_time,
                                        is_need_photo = is_need_photo,
                                        card_text = card_text,
                                         receiver_address=receiver_address,
                                         shipping_id=shipping,
                                         payment=payment_type)

            # request.user.used_promo = None
            # request.user.save()


            shipping_town = OrderShipping.objects.get(id=shipping)
            shipping_price = shipping_town.price

            if request.user.is_authenticated:
                all_cart_items = Cart.objects.filter(client_id=request.user.id)
            else:
                s_key = request.session.session_key
                guest = Guest.objects.get(session=s_key)
                all_cart_items = Cart.objects.filter(guest=guest)
            for item in all_cart_items:
                ItemsInOrder.objects.create(order_id=order.id, item_id=item.item.id, number=item.number,
                                            current_price=item.item.price)
                item.item.buys = item.item.buys + 1
                item.item.save()
            new_order = Order.objects.get(id=order.id)
            if shipping_town.isFree:
                if new_order.total_price >= shipping_town.freePrice:
                    shipping_price = 0
            msg_html = render_to_string('email/new_order.html', {'order': new_order})
            if sender_email:
                send_mail('Заказ успешно размещен', None, '*****@*****.**', [sender_email],
                          fail_silently=False, html_message=msg_html)
            # send_mail('Новый заказ', None, '*****@*****.**', [settings.SEND_TO],
            #           fail_silently=False, html_message=msg_html)
            if payment == 'nal':

                return HttpResponseRedirect('/order/{}'.format(new_order.order_code))
            elif payment =='sber':
                print('sber payment')
                response = requests.get('https://securepayments.sberbank.ru/payment/rest/register.do?'
                                        'amount={}00&'
                                        'currency=643&'
                                        'language=ru&'
                                        'orderNumber={}&'
                                        'description=Оплата заказа {}. Стоимость доствки {}&'
                                        'password={}&'
                                        'userName={}&'
                                        'returnUrl={}&'
                                        'failUrl={}&'
                                        'pageView=DESKTOP&sessionTimeoutSecs=1200'.format(new_order.total_price + shipping_price,
                                                                                          new_order.order_code,
                                                                                          new_order.id,
                                                                                          shipping_price,
                                                                                          settings.SBER_PASSWORD,
                                                                                          settings.SBER_LOGIN,
                                                                                          settings.SBER_SUCCESS_URL,
                                                                                          settings.SBER_FAIL_URL), )
                response_data = json.loads(response.content)


                try:
                    orderId = response_data['orderId']
                    print('orderId',orderId)
                    new_order.sber_orderId = orderId
                    new_order.save()
                    print('formUrl',response_data['formUrl'])
                    return HttpResponseRedirect(response_data['formUrl'])
                except:
                    print('error')





#-------------------------------------------------------------------------------GET request
    shipping = OrderShipping.objects.all()
    # payment = OrderPayment.objects.all()
    sessionTemp = None
    if request.user.is_authenticated:
        try:
            sessionTemp = SessionTemp.objects.get(user=request.user)
            town = OrderShipping.objects.get(id=sessionTemp.delivery)
        except:
            pass

    else:
        s_key = request.session.session_key
        guest = Guest.objects.get(session=s_key)
        try:
            sessionTemp = SessionTemp.objects.get(guest=guest)
            town = OrderShipping.objects.get(id=sessionTemp.delivery)
        except:
            pass


    if request.user.is_authenticated:
        client = request.user
        form = UpdateForm(instance=client)
        return render(request, 'page/checkout.html', locals())
    else:
        form = UpdateForm()
        return render(request, 'page/checkout.html', locals())