Example #1
0
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))