def loginView(request): """ Register and sign view """ loginForm = LoginForm(request.POST or None) registerForm = RegisterForm(request.POST or None) if request.method == "POST": if "login" in request.POST: oldBasket = Sepet.create_or_get_basket(Sepet, None, get_client_ip(request)) isUserLogged = userLogin(request, loginForm) if isUserLogged: basket = Sepet.create_or_get_basket(Sepet, request.user, get_client_ip(request)) if oldBasket.basket_have_item(basket): userBasketUpdateAfterUserLogin(request, oldBasket, basket) else: if registerForm.is_valid(): userRegister(request, registerForm) else: messages.add_message(request, messages.WARNING, registerForm.errors) context = { 'loginForm': loginForm, 'registerForm': registerForm, } # social media login if request.user.is_authenticated: user = request.user try: github_login = user.social_auth.get(provider='github') except UserSocialAuth.DoesNotExist: github_login = None try: twitter_login = user.social_auth.get(provider='twitter') except UserSocialAuth.DoesNotExist: twitter_login = None try: facebook_login = user.social_auth.get(provider='facebook') except UserSocialAuth.DoesNotExist: facebook_login = None can_disconnect = (user.social_auth.count() > 1 or user.has_usable_password()) context.update({ 'github_login': github_login, 'twitter_login': twitter_login, 'facebook_login': facebook_login, 'can_disconnect': can_disconnect }) return render(request, "site/account/login.html", context)
def checkout(request): form = Adress_Form() basket = Sepet.create_or_get_basket(Sepet, request.user, get_client_ip(request)) request.session["user_basket_id"] = basket.id # used by taksit_getir oldAdres = None if request.user.is_authenticated: oldAdres = Adress.objects.filter(user__id=request.user.id) basket_items = SepetUrunler.get_basket_items(SepetUrunler, basket) if request.method == "POST": if "adresFormButton" in request.POST: adresFormPostForCheckOutView(request, Adress_Form(request.POST), basket, basket_items) updateBasket(basket, basket_items) else: if request.POST.get("selected_adres"): if request.POST.get("selected_adres") != "0": adresID = request.POST.get("selected_adres") else: adresID = request.session.get("adresID") elif request.session.get("adresID"): adresID = request.session.get("adresID") else: if request.user.is_authenticated: adresID = Adress.objects.filter( user__id=request.user.id).last() else: adresID = None request.session["adresID"] = adresID print(adresID) if adresID: print(adresID) Point = collections.namedtuple('Point', [ 'number', 'holderName', 'expireMonth', 'expireYear', 'CVC' ]) myCard = Point(request.POST.get("cardNumberCre"), request.POST.get("cardHolderName"), request.POST.get("cardMonth"), request.POST.get("cardYear"), request.POST.get("cvc")) status = payment(request, basket, basket_items, request.POST.get("taksit_sayisi", 1), adresID, myCard, get_client_ip(request)) if status == "redirectTo3dSecurity": return HttpResponseRedirect("/kullanici/three-d-security") else: messages.add_message(request, messages.ERROR, "Geçerli bir adres sağlanamadı") context = {'form': form, 'adresler': oldAdres, 'sepetim': basket_items} return render(request, "site/account/checkout/checkout.html", context)
def basket_add_product(request, urun, qty, attrText, selected_details): basket = Sepet.create_or_get_basket(Sepet, request.user, get_client_ip(request)) # print(basket) basket_item = SepetUrunler.add_product(SepetUrunler, urun, qty, attrText, basket, selected_details) if basket_item: messages.add_message(request, messages.SUCCESS, "Ürün Sepetinize Eklendi") else: messages.add_message(request, messages.ERROR, "Ürün Sepete Eklenirken Hata Oluştu")
def showHeaderForAll(request): MainMenu = AnaMenu.objects.filter(active=True) SubMenu = AltMenu.objects.filter(active=True) site = SiteSettings.getConfig(SiteSettings) basketItems = SepetUrunler.objects.filter( parent_sepet=Sepet.create_or_get_basket(Sepet, request.user, get_client_ip(request))) return { 'MainMenu': MainMenu, 'SubMenu': SubMenu, 'basketItems': basketItems, 'camps': Campaign.getActiveCamp(Campaign), 'site': site }
def sepetim(request): basket = Sepet.create_or_get_basket(Sepet, request.user, get_client_ip(request)) basket_items = SepetUrunler.get_basket_items(SepetUrunler, basket) updateBasket(basket, basket_items) basket_total = 0 for b in basket_items: basket_total += b.totalPrice if basket.coupon: coupon = Coupon.getCoupon(Coupon, basket.coupon.code) else: coupon = None context = { 'sepetim': basket_items, 'basketTotal': basket_total, 'cargos': Cargo.objects.all(), 'coupon': coupon, } return render(request, "site/account/sepetim.html", context)
def siparisi_tamamla(request): user_sepet_id = None adres_text = None product_text = "" try: mail = request.session.get("mail") except: mail = None if request.session.get("adres_id"): adres_id = request.session.get("adres_id") adres = Adress.objects.filter(pk=adres_id) adres_text = "ŞEHİR : " + str(adres.get().city) + "--İLÇE: " + str( adres.get().province) + "--ADRES : " + (adres.get( ).adres) + "--MÜŞTERİ :" + adres.get().name + " " + adres.get( ).last_name + "--TELEFON :" + adres.get( ).phone_number + " MAİL :" + adres.get().mail + " CARGO :" + str( adres.get().cargo) if request.session.get("user_basket_id"): user_sepet_id = request.session.get("user_basket_id") sepet_urunler = SepetUrunler.objects.filter( parent_sepet__id=user_sepet_id) for item in sepet_urunler: product_text += "[Ürün kodu :" + item.parent_product.code + " Ürün Adı : " + str( item.parent_product.title) + "-- Özellikler : " + str( item.attr) + "--- Adet : " + str(item.qty) + "]---" siparis = TamSiparisler.objects.create( user_sepet=Sepet.objects.get(id=user_sepet_id), mail=mail, adres_text=adres_text, product_text=product_text, cargo=Cargo.objects.last()) if request.user.is_authenticated: siparis.user = User.objects.get(id=request.user.id) else: siparis.user_ip = get_client_ip(request) siparis.save()
def product_detail(request, category, product): urun = get_object_or_404(Product, active=True, slug=product, main_menu__slug=category) discPrice = Decimal(urun.price) - Decimal( Campaign.calcDiscountPrice(Campaign, urun)) urun_detaylar = Detail.objects.filter(product=urun) gallery = Files.getFilesProduct(Files, urun.id) relatedPro = Product.relatedProducts(Product, 8, urun.sub_menu.slug, urun.id) comments = ProductsComments.objects.filter(product__id=urun.id, active=True) camp = None if urun.disc_group: camp = Campaign.getCamp(Campaign, urun.disc_group.id) if request.method == "POST": if 'yorum_ekle' in request.POST: yorumEkle(request, urun) else: selected_details = [] strVariantAttr = "" postQty = request.POST.get("qty", 1) for detay in urun_detaylar: if request.POST.get('selvaryant' + str(detay.id) + ''): selected_details.append( int((request.POST.get('selvaryant' + str(detay.id) + '')))) strVariantAttr += "%s : %s " % ( detay.parent_attr.name, Sub_Attr.objects.get( id=request.POST.get("selvaryant" + str(detay.id) + "")).title) if not SepetUrunler.has_product( SepetUrunler, Sepet.create_or_get_basket(Sepet, request.user, get_client_ip(request)), urun, selected_details, strVariantAttr): if Product.has_stock(Product, urun.id, postQty, selected_details): basket_add_product(request, urun, postQty, strVariantAttr, selected_details) else: messages.add_message(request, messages.INFO, "Stokta Yeterli Sayıda Ürün Yok") else: messages.add_message( request, messages.INFO, "Bu ürün daha önceden sepetinize eklenmiş. Sepetim Kısmından Adet Sayısını Güncelleyebilirsin" ) context = { 'urun': urun, 'attr': urun_detaylar, 'gallery': gallery, 'comments': comments, 'discPrice': discPrice, 'relatedPro': relatedPro, 'camp': camp, } return render(request, "site/product/productDetail.html", context)