Esempio n. 1
0
def OrderSummary(request):
    try:
        order = Order.objects.get(user=request.user, ordered=False)
        context = {'order': order}
        return render(request, 'Index/order_summary.html', context)
    except ObjectDoesNotExist:
        messages.warning(self.request, "You do not have an active order")
        return redirect("/")
def menu(request, id):
    try:
        content = Content.objects.get(menu_id=id)
        link = '/content/' + str(content.id) + '/menu'
        return HttpResponseRedirect(link)
    except:
        messages.warning(request, "Hata ! İlgili içerik bulunamadı")
        link = '/error'
        return HttpResponseRedirect(link)
Esempio n. 3
0
def editUser(request, id):
    user = Users.objects.get(id=id)
    form = userForm(request.POST, instance=user)
    if form.is_valid():
        form.save()
        messages.warning(request,
                         'Vous avez Modifier un utilisateur avec succés')
        return redirect('/')
    context = {'user': user}
    return render(request, 'users/edit.html', context)
Esempio n. 4
0
def Checkout(request):
    if request.method == 'POST':
        my_form = CheckoutFrom(request.POST or None)
        try:
            order = Order.objects.get(user=request.user, ordered=False)
            if my_form.is_valid():
                street_address = my_form.cleaned_data.get('street_address') 
                apartment_address = my_form.cleaned_data.get('apartment_address')
                country = my_form.cleaned_data.get('country')
                zip = my_form.cleaned_data.get('zip')
                default = my_form.cleaned_data.get('default')
                payment_option = my_form.cleaned_data.get('payment_option')
                adddress = Address (
                    user = request.user,
                    street_address = street_address,
                    apartment_address = apartment_address,
                    country = country,
                    zip = zip,
                    default = default,
                    payment_option = payment_option
                )
                adddress.save()
                order.delivery_place = adddress
                order.save()

                if payment_option == 'S':
                    return redirect("payment", payment_option = 'stripe')
                elif payment_option == 'P':
                    return redirect("payment", payment_option = 'paypal')
                else:
                    messages.warning(request, "Invalid payment option selected")
                    return redirect("checkout")
        
        except ObjectDoesNotExist:
            messages.warning(request, "You do not have an active order")
            return redirect("order-summary")
       
    else:
        try:
            order = Order.objects.get(user=request.user, ordered=False)
            my_form = CheckoutFrom()
            context = {
                'my_form':my_form,
                'order': order,
                'promotionfrom':PromotionFrom(),
                'DISPLAY_COUPON_FORM': True

            }
            return render(request, 'Index/checkout.html', context)
        except ObjectDoesNotExist:
            messages.info(request, "You do not have an active order")
            return redirect("checkout")
Esempio n. 5
0
def withdrawl_money(request):
    tutor = request.user
    tutor_register = TutorRegister.objects.get(tutor=tutor)
    tutor_balance = TutorBalance.objects.get(tutor=tutor_register)
    if request.method == "POST":
        withdrawl = int(request.POST.get('withdrawl'))
        if tutor_balance.balance >= withdrawl:
            tutor_balance.balance -= withdrawl
            tutor_balance.save()

            # send email
            return redirect('tutor-dashboard')
        else:
            messages.warning(request, 'you dont have enough balance')
            return redirect('tutor-dashboard')
Esempio n. 6
0
def edit_post(request, pk):
    template = 'blog/new_post.html'
    post = get_object_or_404(Post, pk=pk)
    if (request.method == "POST"):
        form = PostForm(request.POST, request.FILES or None, instance=post)
        try:
            if form.is_valid():
                form.save()
                return redirect('/blog')
        except Exception as e:
            messages.warning(request, "Post was not save".format(e))
    else:
        form = PostForm(instance=post)
    context = {
        'form': form,
        'post': post,
    }
    return render(request, template, context)
def login_view(request):
    if request.method == 'POST':
        username = request.POST['username']
        password = request.POST['password']
        user = authenticate(request, username=username, password=password)
        if user is not None:
            login(request, user)
            # Redirect to a success page.
            return HttpResponseRedirect('/')
        else:
            messages.warning(request, "KULLANICI ADI/ŞİFRE HATALI!")
            return HttpResponseRedirect('/login')

    category = Category.objects.all()
    context = {
        'category': category,
    }
    return render(request, 'login.html', context)
def contentdetail(request, id, slug):
    category = Category.objects.all()
    menu = Menu.objects.all()
    setting = Setting.objects.get(pk=1)
    try:
        content = Content.objects.get(pk=id)
        images = CImages.objects.filter(content_id=id)
        context = {
            'menu': menu,
            'images': images,
            'category': category,
            'content': content,
            'setting': setting,
        }
        return render(request, 'content_detail.html', context)

    except:
        messages.warning(request, "Hata ! İlgili içerik bulunamadı")
        link = '/error'
        return HttpResponseRedirect(link)
Esempio n. 9
0
def login_user(request):
    if request.method == 'POST':
        form = LoginForm()
        name = request.POST['username']
        word = request.POST['password']
        user = authenticate(request, username=name, password=word)
        if user is not None:
            login(request, user)
            return redirect('home')
        else:
            messages.warning(request,
                             'هنالك خطأ في اسم المستخم او كلمة المرور')
    else:
        form = LoginForm()

    context = {
        'title': 'تسجيل الدخول',
        'form': form,
    }

    return render(request, 'user/login.html', context)
Esempio n. 10
0
def login_view(request):
    if request.method == 'POST':

        # form = LoginForm(request.POST)
        if request.POST.get('your_name') and request.POST.get('your_pass'):

            username = request.POST['your_name']
            password = request.POST['your_pass']

            user = authenticate(request, username=username, password=password)

            if user is not None:
                login(request, user)
                if (Profile.objects.filter(user=username,
                                           email_confirmed=True,
                                           phone_confirmed=True)):
                    return HttpResponseRedirect(reverse('home'))
                else:
                    messages.warning(request, 'Email or Phone is not verified')
                    return HttpResponseRedirect(reverse('log'))
            else:
                messages.warning(request, 'Password  is incorrect ')
                return HttpResponseRedirect(reverse('log'))
        else:
            messages.warning(request, 'Enter a Valid Input')
            return HttpResponseRedirect(reverse('log'))
def addtocart(request, id):
    url = request.META.get('HTTP_REFERER')  # get last url
    if request.method == 'POST':  # form post edildiyse
        form = ShopCartForm(request.POST)
        if form.is_valid():
            current_user = request.user

            data = ShopCart()  # model ile bağlantı kur
            data.user_id = current_user.id
            data.product_id = id
            data.quantity = form.cleaned_data['quantity']
            data.save()

            request.session['cart_items'] = ShopCart.objects.filter(
                user_id=current_user.id).count()
            messages.success(
                request,
                "Ürün başarı ile sepetinize eklenmiştir.Teşekkür Ederiz.")

            return HttpResponseRedirect(url)
    messages.warning(request, "Ürün sepete eklenemedi.")
    return HttpResponseRedirect(url)
def addcomment(request, id):
    url = request.META.get('HTTP_REFERER')  # get last url
    if request.method == 'POST':  # form post edildiyse
        form = CommentForm(request.POST)
        if form.is_valid():
            current_user = request.user

            data = Comment()  # model ile bağlantı kur
            data.user_id = current_user.id
            data.product_id = id
            data.subject = form.cleaned_data['subject']
            data.comment = form.cleaned_data['comment']
            data.rate = form.cleaned_data['rate']
            data.ip = request.META.get('REMOTE_ADDR')
            data.save()
            messages.success(
                request,
                "Yorumunuz başarı ile gönderilmiştir.Teşekkür Ederiz.")

            return HttpResponseRedirect(url)
    messages.warning(request, "Yorumunuz gönderilememiştir tekrar deneyiniz.")
    return HttpResponseRedirect(url)
Esempio n. 13
0
def Checkout(request):
    if request.method == 'POST':
        my_from = CheckoutFrom(request.POST or None)
        try:
            order = Order.objects.get(user=request.user, ordered=False)
            if my_from.is_valid():
                street_address = my_form.cleaned_data.get('street_address')
                apartment_address = my_form.cleaned_data.get(
                    'apartment_address')
                country = my_form.cleaned_data.get('country')
                zip = my_form.cleaned_data.get('zip')
                default = my_form.cleaned_data.get('default')
                payment_option = my_form.cleaned_data.get('payment_option')
                adddress = Address(
                    user=request.user,
                    street_address=street_address,
                    apartment_address=apartment_address,
                    country=country,
                    zip=zip,
                    default=default,
                    payment_option=payment_option,
                )
                adddress.save()
                order.delivery_place = adddress
                order()
                return redirect("checkout")
            messages.warning(self.request, "Failed checkout")
            return redirect("checkout")

        except ObjectDoesNotExist:
            messages.warning(self.request, "You do not have an active order")
            return redirect("order-summary")

    else:
        my_from = CheckoutFrom()
        context = {'my_from': my_from}
    return render(request, 'Index/checkout.html', context)
Esempio n. 14
0
def add(request, username, eotp, potp):
    v = eotp
    x = potp
    u = username
    context = {
        'username': u,
        'eotp': v,
        'potp': x,
    }
    if request.method == 'POST':
        if request.POST.get('email_otp') and request.POST.get('phone_otp'):
            v3 = (request.POST['email_otp'])
            v2 = eotp
            v4 = (request.POST['phone_otp'])
            v5 = potp

            if v3 == v2:
                messages.warning(request, 'Email account is Verified ')
                s = Profile.objects.get(user=username)
                print(s)
                Profile.objects.filter(user=username).update(
                    email_confirmed=True)
                if v4 == v5:
                    messages.warning(request, 'Mobile number is Verified ')
                    s = Profile.objects.get(user=username)
                    print(s)
                    Profile.objects.filter(user=username).update(
                        phone_confirmed=True)
                    return render(
                        request,
                        'login.html',
                    )
                else:
                    messages.warning(request, 'Phone OTP not match ')
                    return render(request, 'OTP.html', context)

            else:
                messages.warning(request, 'Email OTP not match ')
                return render(request, 'OTP.html', context)
Esempio n. 15
0
def siparisproduct(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 = SiparisForm(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 = Siparis()
            data.first_name = form.cleaned_data['first_name'] #get product quantity from form
            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')
            data.save() #


            for rs in shopcart:
                detail = SiparisProduct()
                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.quantity -= rs.quantity
                    variant.save()
                #************ <> *****************

            ShopCart.objects.filter(user_id=current_user.id).delete() # Clear & Delete shopcart
            request.session['cart_items']=0
            messages.success(request, "Your Order has been completed. Thank you ")

        else:
            messages.warning(request, form.errors)
            return HttpResponseRedirect("/order/orderproduct")

    form= SiparisForm()
    profile = UserProfile.objects.get(user_id=current_user.id)
    context = {'shopcart': shopcart,
               'category': category,
               'total': total,
               'form': form,
               'profile': profile,
               }
    return render(request, 'Order_Form.html', context)
Esempio n. 16
0
def signup(request):
    if request.method == 'POST':
        print("1")
        if request.POST.get('username') and request.POST.get(
                'F_name') and request.POST.get('L_name') and request.POST.get(
                    'email') and request.POST.get(
                        'mobile') and request.POST.get(
                            'pass') and request.POST.get('repass'):
            print("22")
            v1 = (request.POST['F_name'])
            v2 = (request.POST['L_name'])
            v3 = (request.POST['username'])
            v4 = (request.POST['email'])
            v5 = (request.POST['pass'])
            v6 = (request.POST['repass'])
            v8 = (request.POST['mobile'])
            print("2")
            if v5 == v6:
                if len(v5) >= 7:
                    password1 = make_password(v5)
                    u = User.objects.filter(username=v3)

                    if not u:
                        v = Profile.objects.filter(email=v4)
                        x = Profile.objects.filter(mobile=v8)

                        if not v:
                            if not x:
                                subject = 'Welcome to DataFlair'
                                message = otp(request)
                                recepient = str(v4)
                                send_mail(subject,
                                          message,
                                          EMAIL_HOST_USER, [recepient],
                                          fail_silently=False)

                                to = '+91' + v8
                                client = Client('SID', 'Token')
                                potp = otp(request)
                                client.messages.create(
                                    body='Your verification otp is ' + potp,
                                    to=to,
                                    from_='+12059648218')

                                d = Profile.objects.create(user=v3,
                                                           first_name=v1,
                                                           last_name=v2,
                                                           mobile=v8,
                                                           email=v4)
                                d.save()
                                E = User.objects.create(username=v3,
                                                        email=v4,
                                                        password=password1)
                                E.save()

                                context = {
                                    'username': v3,
                                    'eotp': message,
                                    'potp': potp,
                                }
                                return render(request, 'OTP.html', context)

                            else:
                                messages.warning(request,
                                                 'Phone is in Use, Try new ')
                                return HttpResponseRedirect(reverse('sign'))
                        else:
                            messages.warning(request,
                                             'Email is in Use, Try new ')
                            return HttpResponseRedirect(reverse('sign'))

                    else:
                        messages.warning(request,
                                         'Username not available , Try new')
                        return HttpResponseRedirect(reverse('sign'))
                else:
                    messages.warning(request, 'Password  is too small ')
                    return HttpResponseRedirect(reverse('sign'))
            else:

                messages.warning(request, 'Password  not match ')
                return HttpResponseRedirect(reverse('sign'))
def orderproduct(request):
    category = Category.objects.all()
    current_user = request.user
    schopcart = ShopCart.objects.filter(user_id=current_user.id)
    total = 0

    for rs in schopcart:
        total += rs.product.price * rs.quantity

    if request.method == 'POST':
        form = OrderForm(request.POST)
        if form.is_valid():
            data = Order()
            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()
            data.code = ordercode
            data.save()

            schopcart = ShopCart.objects.filter(user_id=current_user.id)
            for rs in schopcart:
                detail = OrderProduct()
                detail.order_id = data.id
                detail.product_id = rs.product_id
                detail.user_id = current_user.id
                detail.quantity = rs.quantity

                detail.price = rs.product.price
                detail.amount = rs.amount
                detail.save()

                product = Cars.objects.get(id=rs.product_id)
                product.amount -= rs.quantity
                product.save()

            ShopCart.objects.filter(user_id=current_user.id).delete()
            request.session['cart_items'] = 0
            messages.success(request, "SİPARİŞİNİZ ALINMIŞTIR.TEŞEKKÜR EDERİZ")
            return render(request, '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 = {
        'schopcart': schopcart,
        'category': category,
        'total': total,
        'form': form,
        'profile': profile
    }

    return render(request, 'Order_Form.html', context)
Esempio n. 18
0
def PaymentView(request, payment_option):
    if request.method == 'POST':
        order = Order.objects.get(user=request.user, ordered=False)
        token = request.POST.get('stripeToken')
        my_amount = int(order.get_total() * 100)
        print(request.POST.get('stripeToken'))
        print(type(2000))
        print(type(my_amount))
        print(my_amount)
        try:
            charge = stripe.Charge.create(
                amount=my_amount,
                currency="thb",
                source=token,
            )
            payment = Payment()
            payment.stripe_charge_id = charge['id']
            payment.user = request.user
            payment.method = 'S'
            payment.amount = order.get_total()
            payment.save()

            order_products = order.products.all()
            order_products.update(ordered=True)
            for product in order_products:
                product.save()

            order.ordered = True
            order.status = 'NS'
            order.payment = payment

            order.save()

            messages.success(request, "Your order was successful!")
            return redirect("/")

        except stripe.error.CardError as e:

            body = e.json_body
            err = body.get('error', {})
            messages.warning(request, f"{err.get('message')}")
            return redirect("/")

        except stripe.error.RateLimitError as e:
            # Too many requests made to the API too quickly
            messages.warning(request, "Rate limit error")
            return redirect("/")

        except stripe.error.InvalidRequestError as e:
            # Invalid parameters were supplied to Stripe's API
            print(e)
            messages.warning(request, "Invalid parameters")
            return redirect("/")

        except stripe.error.AuthenticationError as e:
            # Authentication with Stripe's API failed
            # (maybe you changed API keys recently)
            messages.warning(request, "Not authenticated")
            return redirect("/")

        except stripe.error.APIConnectionError as e:
            # Network communication with Stripe failed
            messages.warning(request, "Network error")
            return redirect("/")

        except stripe.error.StripeError as e:
            # Display a very generic error to the user, and maybe send
            # yourself an email
            messages.warning(
                request,
                "Something went wrong. You were not charged. Please try again."
            )
            return redirect("/")

        except Exception as e:
            # send an email to ourselves
            messages.warning(
                request, "A serious error occurred. We have been notifed.")
            return redirect("/")
    else:
        order = Order.objects.get(user=request.user, ordered=False)
        if order.delivery_place:

            context = {'order': order, 'DISPLAY_COUPON_FORM': False}
        else:
            messages.warning(self.request,
                             "You have not added a delivery place")
            return redirect("checkout")

        return render(request, 'Index/payment.html', context)
    return render(request, 'Index/payment.html')
Esempio n. 19
0
def tutor_register(request):
    if request.method == 'POST':
        name = request.POST.get('name')
        email = request.POST.get('email')
        email = email.lower()
        qualification_level = request.POST.get('level')
        subject = request.POST.get('subject')
        user = User.objects.get_or_create(username=email)
        password = config('tutorspassword')
        b = user[1]
        user = user[0]
        if b == True:
            user.email = email
            user.first_name = name
            user.save()
            UserDetails(user=user, user_type="Tutor").save()
            user.set_password(password)
            user.is_active = False
            user.save()
            hard = Questions.objects.filter(subject=subject)
            hard = random.choice(hard)
            tutor = TutorRegister(name=name,
                                  qualification_level=qualification_level,
                                  subject=subject,
                                  tutor=user)
            tutor.save()
            id = tutor.pk
            id += 3000
            subject = subject.upper()
            tutor.unique_id = f'{subject[0:3]}-{id}'
            tutor.save()
            c = {'user': name}
            email_msg = render_to_string('tutor_email.txt', c)
            connection = mail.get_connection(
                backend='django.core.mail.backends.smtp.EmailBackend',
                host='smtp.gmail.com',
                name="TutorChamps",
                use_tls=True,
                port=587,
                username='******',
                password=config('tutorPassword'))
            connection.open()
            email = EmailMessage(
                subject='Welcome to TutorChamps || Complete the test',
                body=email_msg,
                from_email=
                'TutorChamps Tutors Support <*****@*****.**>',
                to=[email])
            hard = hard.question
            email.attach(hard.name, hard.read())
            connection.send_messages([email])
            connection.close()
            x = TutorBalance(tutor=tutor, balance=0)
            x.save()
            account = TutorAccount(tutor=tutor)
            account.save()
            return redirect(f'/thank-you/{id}/')
        else:
            messages.warning(request, 'already registered')
            return redirect('registration')
    return render(request, 'register.html')