Exemple #1
0
    def read(self, request):
        query = request.GET.get('q')
        page = request.GET.get('p', 1)
        results_per_page = request.GET.get('n', 50)
        order = request.GET.get('o')

        if not query:
            return 'Query cannot be empty.'
        else:
            query = query.encode('utf-8')

        try: 
            n = int(results_per_page)
        except ValueError:
            n = 10
    
        if 1 > n > 500:
            n = 1
        
        try:
            page = int(page)
        except ValueError:
            page = 1
        
        if page < 1:
            page = 1

        return solrutils.select(query, results_per_page, page, order)
Exemple #2
0
def search(request):
    if request.method != 'GET':
        return HttpResponseNotAllowed(['GET'])
    
    query = request.GET.get('q')
    sort = request.GET.get('o')
    type_ = request.GET.get('type')
    try:
        page_number = int(request.GET.get('p', '1'))
    except ValueError:
        page_number = 1
    
    try:
        results_per_page = int(request.GET.get('per_page', 16))
    except ValueError:
        results_per_page = 16

    filters = {
        'Type': type_,
    }

    query = solrutils.build_query(query, filters)

    # Query Solr for results
    solr_dict_resp = solrutils.select(query, results_per_page,
                                      page_number, sort)

    docs = solrutils.SolrPaginator(solr_dict_resp, page_number)

    template_data = {
        'docs': docs,
        'anonymous': _(u'anônimo'),
        'q': query,
        'type': type_,
    }

    return render_to_response('search.html', template_data,
                              RequestContext(request))