Пример #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))
Пример #2
0
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))
Пример #3
0
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))
Пример #4
0
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))    
Пример #5
0
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))