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