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))
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))
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))