def category_filter(request, slug): c = get_common_context(request) if 'category' in request.POST: slug = request.POST['category'] if slug: c['category'] = Category.get_by_slug(slug) items = Item.objects.filter(category__in=c['category'].get_descendants(include_self=True)) for k in request.POST.keys(): if k.startswith('parametr_'): p_id = k[9:] p_value = request.POST[k] if p_id == 'price_from' and p_value: items = items.filter(price__gte=float(p_value)) c['price_from'] = int(p_value) elif p_id == 'price_to' and p_value: items = items.filter(price__lte=float(p_value)) c['price_to'] = int(p_value) else: items = Item.filter_by_parametr(items, p_id, p_value) else: items = Item.objects.all() if 'q' in request.POST: items = items.filter(name__icontains=request.POST['q']) c['items'] = items return render_to_response('catalog.html', c, context_instance=RequestContext(request))
def category(request, slug): c = get_common_context(request) if slug: c['category'] = Category.get_by_slug(slug) items = Item.objects.filter(category__in=c['category'].get_descendants(include_self=True)) else: items = Item.objects.all() c['items'] = items return render_to_response('catalog.html', c, context_instance=RequestContext(request))
def category(request, slug): c = get_common_context(request) if slug: c['category'] = Category.get_by_slug(slug) c['title'] = c['category'].name items = Item.objects.filter(category__in=c['category'].get_descendants(include_self=True), hidden=False) if c['category'].parent: c['subcategories'] = c['category'].parent.get_descendants().extra(order_by = ['id']) else: c['subcategories'] = c['category'].get_descendants().extra(order_by = ['id']) else: items = Item.objects.all() c['subcategories'] = Category.objects.filter(parent=None) c['title'] = u'Каталог' return render_to_response('category.html', filter_items(request, c, items), context_instance=RequestContext(request))
def category(request, slug): c = get_common_context(request) c['category'] = Category.get_by_slug(slug) if not c['category']: return page_page(request, slug) page = c['category'] breadcrumbs = [] while page: breadcrumbs.append(page) page = page.parent breadcrumbs.reverse() c['titles'] = breadcrumbs[:-1] c['items'] = Item.objects.filter(category=c['category']) if len(c['items']) == 0: c['items'] = Item.objects.filter(category__in=c['category'].get_descendants(include_self=True)) return render_to_response('category.html', c, context_instance=RequestContext(request))
def category(request, slug): c = get_common_context(request) if slug: c['category'] = Category.get_by_slug(slug) items = Item.objects.filter(category__in=c['category'].get_descendants(include_self=True)) else: items = Item.objects.all() c['brands'] = [] c['colors'] = [] c['materials'] = [] for i in items: if i.brand and i.brand not in c['brands']: c['brands'].append(i.brand) if i.color and i.color not in c['colors']: c['colors'].append(i.color) if i.material and i.material not in c['materials']: c['materials'].append(i.material) return render_to_response('category.html', filter_items(request, c, items), context_instance=RequestContext(request))