def async_list(request, app_name, model_name): # FIXME: commented checking on anonymous # if not request.user.is_anonymous(): print "async_list" model = get_model(app_name, model_name) meta = model._meta query = request.GET.get('q', '') q_list = [] if query: search_fields = meta.admin.search_fields for field_name in search_fields: field = meta.get_field(field_name) # TODO: add here model fields list exported from dojoforms.models if field.get_internal_type() not in ['ForeignKey']: q_list.append(Q(**{'%s__icontains' % field_name: query})) else: for rel_field_name in field.rel.to._meta.admin.search_fields: q_list.append(Q(**{'%s__%s__icontains' % (field_name, rel_field_name): query})) #Fixme: next line would not work with trunk. Fix asap. #q = QOr(*q_list) try: order_field = model._meta.ordering[0] except IndexError: order_field = '-modifydate' #FIXME: filter does not work #queryset = model.objects.filter(q).order_by(order_field) queryset = model.objects.all().order_by(order_field) paginate_by = int(request.GET.get('count', 10)) paginator = Paginator(queryset, paginate_by) #TODO: check second parameter for get() on the next line page_num = int(request.GET.get('page', 1)) page = paginator.page(page_num) params = { 'is_paginated': paginator.num_pages > 1, 'results_per_page': paginate_by, 'has_next': page.has_next(), 'has_previous': page.has_previous(), #TODO: next three lines do not look good 'page': page_num + 1, 'next': page_num + 1, 'previous': page_num - 1, 'pages': paginator.num_pages, 'hits' : paginator.count, 'is_owner': True, 'obj_list': page.object_list, 'app': app_name, 'model': model_name, } template_name = '%s/%s_list.html' % (get_template_dir(app_name), model_name) try: template = get_template(template_name) except TemplateDoesNotExist: template = Template(list_template_for_model(model)) context = RequestContext(request, params) return HttpResponse(template.render(context))
def test(request): #print "Subzero POST data:", request.POST #return render_to_response('query.html', {}) return HttpResponse(list_template_for_model(Org), mimetype="text/plain")
def async_list(request, app_name, model_name): # FIXME: commented checking on anonymous # if not request.user.is_anonymous(): print "async_list" model = get_model(app_name, model_name) meta = model._meta query = request.GET.get('q', '') q_list = [] if query: search_fields = meta.admin.search_fields for field_name in search_fields: field = meta.get_field(field_name) # TODO: add here model fields list exported from dojoforms.models if field.get_internal_type() not in ['ForeignKey']: q_list.append(Q(**{'%s__icontains' % field_name: query})) else: for rel_field_name in field.rel.to._meta.admin.search_fields: q_list.append( Q( **{ '%s__%s__icontains' % (field_name, rel_field_name): query })) #Fixme: next line would not work with trunk. Fix asap. #q = QOr(*q_list) try: order_field = model._meta.ordering[0] except IndexError: order_field = '-modifydate' #FIXME: filter does not work #queryset = model.objects.filter(q).order_by(order_field) queryset = model.objects.all().order_by(order_field) paginate_by = int(request.GET.get('count', 10)) paginator = Paginator(queryset, paginate_by) #TODO: check second parameter for get() on the next line page_num = int(request.GET.get('page', 1)) page = paginator.page(page_num) params = { 'is_paginated': paginator.num_pages > 1, 'results_per_page': paginate_by, 'has_next': page.has_next(), 'has_previous': page.has_previous(), #TODO: next three lines do not look good 'page': page_num + 1, 'next': page_num + 1, 'previous': page_num - 1, 'pages': paginator.num_pages, 'hits': paginator.count, 'is_owner': True, 'obj_list': page.object_list, 'app': app_name, 'model': model_name, } template_name = '%s/%s_list.html' % (get_template_dir(app_name), model_name) try: template = get_template(template_name) except TemplateDoesNotExist: template = Template(list_template_for_model(model)) context = RequestContext(request, params) return HttpResponse(template.render(context))