示例#1
0
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)
示例#2
0
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)
示例#3
0
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")
示例#4
0
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
    }
示例#5
0
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)
示例#6
0
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()
示例#7
0
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)