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)
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)
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")
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')
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)
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)
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)
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)
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)
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)
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)
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')
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')