def catalog(request): template_name = "products/category.html" catalog_products = Product.objects.all().filter(is_active=True) (catalog_products, features_dict, get_dict, get_valuelist,get_keylist) = product_filter(request,catalog_products) for p in catalog_products: descipriton_small = p.description.split('.') if descipriton_small > 30: p.descipriton_small = ' '.join(descipriton_small[:30]) + ' ...' else: p.descipriton_small = ' '.join(descipriton_small) p.image_url = get_im_source(p) p.image_20 = get_im_20(p) p.image_30 = get_im_30(p) paginator = Paginator(catalog_products, 12) page = request.GET.get('page') try: catalog_products = paginator.page(page) except PageNotAnInteger: catalog_products = paginator.page(1) except EmptyPage: catalog_products = paginator.page(paginator.num_pages) request.breadcrumbs([ (('Главная'), '/'), (('Каталог'), '/products/catalog'), ]) context = {'products': catalog_products,'features_dict':features_dict, 'get_dict':get_dict, 'get_valuelist':get_valuelist,'get_keylist':get_keylist} return render(request, template_name, context)
def new_products(request): template_name = "products/category.html" new_products = Product.objects.all().order_by('-created_at') (new_products, features_dict, get_dict, get_valuelist,get_keylist) = product_filter(request,new_products) for p in new_products: descipriton_small = p.description.split(' ') if descipriton_small > 30: p.descipriton_small = ' '.join(descipriton_small[:30]) + ' ...' else: p.descipriton_small = ' '.join(descipriton_small) p.image_url = get_im_source(p) p.image_20 = get_im_20(p) p.image_30 = get_im_30(p) paginator = Paginator(new_products, 12) page = request.GET.get('page') try: new_products = paginator.page(page) except PageNotAnInteger: new_products = paginator.page(1) except EmptyPage: new_products = paginator.page(paginator.num_pages) request.breadcrumbs([ (('Главная'), '/'), (('Каталог'), '/products/catalog'), (('Новинки'),'%s' % (request.path_info)), ]) context = {'products': new_products,'features_dict':features_dict, 'get_dict':get_dict, 'get_valuelist':get_valuelist,'get_keylist':get_keylist} return render(request, template_name, context)
def category_view(request, category_slug): template_name = "products/category.html" category = get_object_or_404(Category.active, slug=category_slug) products = Product.objects.filter(categories=category,is_active=True) request.session.get('view', 'grid') sort_view = request.session.get('sort_view', '') if sort_view == 'price_l': products = products.order_by('-price') elif sort_view == 'price_h': products = products.order_by('price') images = [] (products, features_dict, get_dict, get_valuelist,get_keylist) = product_filter(request,products) for p in products: descipriton_small = p.description.split(' ') if descipriton_small > 30: p.descipriton_small = ' '.join(descipriton_small[:30]) + ' ...' else: p.descipriton_small = ' '.join(descipriton_small) print p.descipriton_small p.image_url = get_im_source(p) p.image_20 = get_im_20(p) p.image_30 = get_im_30(p) paginator = Paginator(products, 12) page = request.GET.get('page') try: products = paginator.page(page) except PageNotAnInteger: # If page is not an integer, deliver first page. products = paginator.page(1) except EmptyPage: products = paginator.page(paginator.num_pages) request.breadcrumbs([ (('Главная'), '/'), (('Каталог'), '/products/catalog'), (('%s') % ((category.title)), '%s' % (request.path_info)), ]) context = {'category': category, 'products': products, 'images': images, 'category_slug': category_slug, 'features_dict':features_dict, 'get_dict':get_dict, 'get_valuelist':get_valuelist,'get_keylist':get_keylist} return render(request, template_name, context)
def sale_products(request): template_name = "products/category.html" sale_products = Product.objects.all().filter(is_active=True) result = {} for product in sale_products: if product.old_price: if product.price < product.old_price: diff = product.old_price - product.price result[product.id] = diff result = sorted(result.items(), key=lambda (k, v): v,reverse=True) sale_products = [] for key,value in result: p = Product.objects.get(id = key) sale_products.append(p) (sale_products, features_dict, get_dict, get_valuelist,get_keylist) = product_filter(request,sale_products) for p in sale_products: descipriton_small = p.description.split(' ') if descipriton_small > 30: p.descipriton_small = ' '.join(descipriton_small[:30]) + ' ...' else: p.descipriton_small = ' '.join(descipriton_small) p.image_url = get_im_source(p) p.image_20 = get_im_20(p) p.image_30 = get_im_30(p) paginator = Paginator(sale_products, 12) page = request.GET.get('page') try: sale_products = paginator.page(page) except PageNotAnInteger: sale_products = paginator.page(1) except EmptyPage: sale_products = paginator.page(paginator.num_pages) request.breadcrumbs([ (('Главная'), '/'), (('Каталог'), '/products/catalog'), (('Скидки'),'%s' % (request.path_info)), ]) context = {'products': sale_products,'features_dict':features_dict, 'get_dict':get_dict, 'get_valuelist':get_valuelist,'get_keylist':get_keylist} return render(request, template_name, context)