Exemple #1
0
def mine(request):
    ads = Ad.objects.filter(user=request.user, active=True)
    context = context_sortable(request, ads)
    context['sortfields'] = ['id', 'category', 'created_on']
    return render_to_response('classifieds/manage.html',
                              context,
                              context_instance=RequestContext(request))
Exemple #2
0
def search_results(request, slug):
    category = get_object_or_404(Category, slug=slug)
    fields = list(category.field_set.all())
    fields += list(Field.objects.filter(category=None))
    fieldsLeft = [field.name for field in fields]

    if request.method == "POST" or 'search' in request.session:
        ads = category.ad_set.filter(active=True,
                                     expires_on__gt=datetime.datetime.now())
        # A request dictionary with keys defined for all
        # fields in the category.
        post = {}
        if 'search' in request.session:
            post.update(request.session['search'])
        else:
            post.update(request.POST)

        sforms = prepare_sforms(fields, fieldsLeft, post)

        isValid = True

        for f in sforms:
            # TODO: this assumes the form is not required
            # (it's a search form after all)
            if not f.is_valid() and not f.is_empty():
                isValid = False

        if isValid:
            if request.method == 'POST':
                request.session['search'] = {}
                request.session['search'].update(request.POST)
                return redirect('classifieds_browse_search_results', slug=slug)

            for f in sforms:
                ads = f.filter(ads)

            if ads.count() == 0:
                return render_to_response(
                    'classifieds/list.html', {
                        'no_results': True,
                        'category': category
                    },
                    context_instance=RequestContext(request))
            else:
                context = context_sortable(request, ads)
                context['category'] = category
                return render_to_response(
                    'classifieds/list.html',
                    context,
                    context_instance=RequestContext(request))
    else:
        sforms = prepare_sforms(fields, fieldsLeft)

    return render_to_response('classifieds/search.html', {
        'forms': sforms,
        'category': category
    },
                              context_instance=RequestContext(request))
Exemple #3
0
def search_results(request, slug):
    category = get_object_or_404(Category, slug=slug)
    fields = list(category.field_set.all())
    fields += list(Field.objects.filter(category=None))
    fieldsLeft = [field.name for field in fields]

    if request.method == "POST" or 'search' in request.session:
        ads = category.ad_set.filter(active=True,
                                     expires_on__gt=datetime.datetime.now())
        # A request dictionary with keys defined for all
        # fields in the category.
        post = {}
        if 'search' in request.session:
            post.update(request.session['search'])
        else:
            post.update(request.POST)

        sforms = prepare_sforms(fields, fieldsLeft, post)

        isValid = True

        for f in sforms:
            # TODO: this assumes the form is not required
            # (it's a search form after all)
            if not f.is_valid() and not f.is_empty():
                isValid = False

        if isValid:
            if request.method == 'POST':
                request.session['search'] = {}
                request.session['search'].update(request.POST)
                return redirect('classifieds_browse_search_results', slug=slug)

            for f in sforms:
                ads = f.filter(ads)

            if ads.count() == 0:
                return render_to_response('classifieds/list.html',
                                          {'no_results': True,
                                           'category': category},
                                          context_instance=RequestContext(request))
            else:
                context = context_sortable(request, ads)
                context['category'] = category
                return render_to_response('classifieds/list.html', context,
                                          context_instance=RequestContext(request))
    else:
        sforms = prepare_sforms(fields, fieldsLeft)

    return render_to_response('classifieds/search.html',
                              {'forms': sforms, 'category': category},
                              context_instance=RequestContext(request))
Exemple #4
0
def mine(request):
    ads = Ad.objects.filter(user=request.user, active=True)
    context = context_sortable(request, ads)
    context['sortfields'] = ['id', 'category', 'created_on']
    return render_to_response('classifieds/manage.html', context,
                              context_instance=RequestContext(request))