Beispiel #1
0
 def get_context_data(self, **kwargs):
     context = super(BrandsPage, self).get_context_data(**kwargs)
     seo_title = 'Brands Page'
     menu_categories, cart, cart_items = initial_data(self.request)
     search_name = self.request.GET.get('search_brand', None)
     context.update(locals())
     return context
Beispiel #2
0
def delete_coupon(request, dk):
    coupon = get_object_or_404(Coupons, id=dk)
    menu_categories, cart, cart_items = initial_data(request)
    cart.coupon.remove(coupon)
    cart.save()
    messages.success(request,
                     'The coupon %s have been removed from cart' % coupon.code)
    return HttpResponseRedirect(request.META.get('HTTP_REFERER'))
Beispiel #3
0
def checkout_page(request):
    menu_categories, cart, cart_items = initial_data(request)
    payment_methods = PaymentMethod.objects.filter(active=True)
    shippings = Shipping.objects.filter(active=True)
    user = request.user
    gifts = CartGiftItem.objects.filter(cart_related=cart) if cart else None
    login_form = LoginForm(request.POST or None)
    form = CheckoutForm()
    if user.is_authenticated:
        profile, created = CostumerAccount.objects.get_or_create(user=user)
        if not created:
            form = CheckoutForm(
                initial={
                    'first_name': profile.first_name,
                    'email': user.email,
                    'last_name': profile.last_name,
                    'zip_code': profile.billing_zip_code,
                    'address': profile.billing_address,
                    'city': profile.billing_city,
                    'cellphone': profile.cellphone
                })

    if 'login_button' in request.POST:
        username = request.POST.get('username')
        password = request.POST.get('password')
        user = authenticate(username=username, password=password)
        if user:
            login(request, user)
            if cart:
                cart.user = user
                cart.save()
        return HttpResponseRedirect(request.META.get('HTTP_REFERER'))
    if 'submit' in request.POST:
        form = CheckoutForm(request.POST)
        if form.is_valid():
            print('form_valid')
            new_order = RetailOrder.create_order_from_cart(
                form, cart, cart_items)
            RetailOrderProfile.create_profile_from_cart(form, order=new_order)
            messages.success(request, 'Your Order Have Completed!')
            GiftRetailItem.check_retail_order(new_order, cart)
            del request.session['cart_id']
            if user.is_authenticated:  # check if profile exists or create one
                profile, created = CostumerAccount.objects.get_or_create(
                    user=user)
                profile.update_fields(form)
            send_mail('Η παραγελία σας πραγματοποιήθηκε',
                      'Νέα Παραγγελία',
                      '*****@*****.**',
                      [f'{form.cleaned_data.get("email")}'],
                      fail_silently=True)
            return HttpResponseRedirect(
                reverse('order_view', kwargs={'pk': new_order.id}))
        else:
            print(form.errors)
    context = locals()
    return render(request, 'my_site/checkout.html', context)
Beispiel #4
0
 def get_context_data(self, **kwargs):
     context = super(CategoryPageList, self).get_context_data(**kwargs)
     seo_title = self.category.title
     menu_categories, cart, cart_items = initial_data(self.request)
     brands, categories, colors, sizes = initial_filter_data(
         self.object_list)
     brand_name, cate_name, color_name = grab_user_filter_data(self.request)
     context.update(locals())
     return context
Beispiel #5
0
 def get_context_data(self, **kwargs):
     context = super(SearchPage, self).get_context_data(**kwargs)
     menu_categories, cart, cart_items = initial_data(self.request)
     brands, categories, colors, sizes = initial_filter_data(
         self.object_list)
     brand_name, cate_name, color_name = grab_user_filter_data(self.request)
     seo_title = '%s' % self.search_name
     search_name = self.request.GET.get('search_name', None)
     context.update(locals())
     return context
Beispiel #6
0
 def get_context_data(self, **kwargs):
     context = super(BrandPage, self).get_context_data(**kwargs)
     instance = get_object_or_404(Brands, slug=self.kwargs['slug'])
     menu_categories, cart, cart_items = initial_data(self.request)
     brands, categories, colors, sizes = initial_filter_data(
         self.object_list)
     brand_name, cate_name, color_name = grab_user_filter_data(self.request)
     seo_title = '%s' % instance.title
     context.update(locals())
     return context
Beispiel #7
0
 def get_context_data(self, **kwargs):
     context = super(OffersPage, self).get_context_data(**kwargs)
     seo_title = 'Offers'
     menu_categories, cart, cart_items = initial_data(self.request)
     brands, categories, colors, sizes = initial_filter_data(
         self.object_list)
     brand_name, cate_name, color_name = grab_user_filter_data(self.request)
     if 'search_name' in self.request.GET:
         search_name = self.request.GET.get('search_name')
         return custom_redirect('search_page', search_name=search_name)
     context.update(locals())
     return context
Beispiel #8
0
 def get_context_data(self, **kwargs):
     context = super(NewProductsPage, self).get_context_data(**kwargs)
     seo_title = 'New Products'
     brands, categories, colors, sizes = initial_filter_data(
         self.object_list)
     menu_categories, cart, cart_items = initial_data(self.request)
     brand_name, site_cate_name, color_name = grab_user_filter_data(
         self.request)
     print('total connections...', len(connection.queries))
     reset_queries()
     context.update(locals())
     return context
Beispiel #9
0
 def get_context_data(self, **kwargs):
     context = super(CartPage, self).get_context_data(**kwargs)
     menu_categories, cart, cart_items = initial_data(self.request)
     gifts = CartGiftItem.objects.filter(cart_related=cart)
     cart_form = CartCostumerForm()
     if cart:
         cart_form = CartCostumerForm(
             initial={
                 'payment_method': cart.payment_method,
                 'shipping_method': cart.shipping_method
             })
     context.update(locals())
     return context
Beispiel #10
0
def ajax_update_checkout(request, type, pk):
    data = {}
    menu_categories, cart, cart_items = initial_data(request)
    if type == 'payment':
        new_payment = get_object_or_404(PaymentMethod, id=pk)
        cart.payment_method = new_payment
    if type == 'shipping':
        new_shipping = get_object_or_404(Shipping, id=pk)
        cart.shipping_method = new_shipping
    cart.save()
    cart.refresh_from_db()
    data['cart_data'] = render_to_string(
        request=request,
        template_name='my_site/ajax_calls/ajax_checkout.html',
        context={'cart': cart})
    return JsonResponse(data)
Beispiel #11
0
def product_detail(request, slug):
    instance = get_object_or_404(Product, slug=slug)
    menu_categories, cart, cart_items = initial_data(request)
    images = ProductPhotos.objects.filter(product=instance)
    seo_title = '%s' % instance.title
    if instance.size:
        form = CartItemCreateWithAttrForm(instance_related=instance)
    else:
        form = CartItemCreate()
    if request.POST:
        if instance.size:
            form = CartItemCreateWithAttrForm(instance, request.POST)
            if form.is_valid():
                qty = form.cleaned_data.get('qty', 1)
                attribute = form.cleaned_data.get('attribute')
                cart = check_or_create_cart(request)
                cart_item = CartItem.create_cart_item(request,
                                                      order=cart,
                                                      product=instance,
                                                      qty=qty,
                                                      size=attribute)
                cart.refresh_from_db()
                CartGiftItem.check_cart(cart)
                return HttpResponseRedirect(
                    reverse('product_page', kwargs={'slug': instance.slug}))
        else:
            form = CartItemCreate(request.POST)
            if form.is_valid():
                qty = form.cleaned_data.get('qty', 1)
                cart = check_or_create_cart(request)
                cart_item = CartItem.create_cart_item(request,
                                                      order=cart,
                                                      product=instance,
                                                      qty=qty)
                cart.refresh_from_db()
                CartGiftItem.check_cart(cart)
                return HttpResponseRedirect(
                    reverse('product_page', kwargs={'slug': instance.slug}))

    context = locals()
    return render(request, 'my_site/product_page.html', context)
Beispiel #12
0
    def post(self, *args, **kwargs):
        menu_categories, cart, cart_items = initial_data(self.request)
        if self.request.POST.get('coupon_name', None):
            code = self.request.POST.get('coupon_name', None)
            find_coupon = Coupons.objects.filter(code=code, active=True)
            if find_coupon.exists():
                coupon = find_coupon.first()
                cart.coupon.add(coupon)
                cart.save()
                messages.success(self.request,
                                 'Coupon %s added in your cart!' % code)
            else:
                messages.warning(self.request,
                                 'This code is not a valid coupon')
        if 'my_cart' in self.request.POST:
            Cart.costumer_changes(self.request, cart)
            return HttpResponseRedirect(self.request.META.get('HTTP_REFERER'))

        if 'my_cart' not in self.request.POST:
            data = self.request.POST
            for key, value in data.items():
                print(key, value)
                if value == '0':
                    continue
                else:
                    try:
                        get_item = CartItem.objects.get(id=key)
                        get_item.qty = int(value)
                        get_item.save()
                        get_item.refresh_from_db()
                    except:
                        continue
            CartGiftItem.check_cart(cart)
            messages.success(self.request, 'The cart updated!')
        cart.refresh_from_db()
        context = locals()
        return render(self.request, self.template_name, context=context)
Beispiel #13
0
def checkout_home(request):
    menu_categories, cart, cart_items = initial_data(request)
    order_obj = None

    context = locals()
    return render(request, 'my_site/checkout_home.html', context)