Пример #1
0
def search_topic(request, board_alias, query):
    cursor = connection.cursor()
    try:
        board = Board.objects.get(alias=board_alias)
    except ObjectDoesNotExist:
        raise Http404

    page  = get_page_from_request(request)
    start = (page-1) * settings.LURKERFAQS_TOPICS_PER_PAGE
    count = settings.LURKERFAQS_TOPICS_PER_PAGE

    # topic ids should be date descending ordered
    total_results, topic_gfaqs_ids = SolrSearcher.search_topic(query, board_alias, start, count)
    topics_unordered = list(Topic.objects.filter(gfaqs_id__in=topic_gfaqs_ids))

    # reorder topics
    topics = []
    for gid in topic_gfaqs_ids:
        for t in topics_unordered:
            if t.gfaqs_id == gid:
                topics.append(t)
                break

    # create a page guide for pagination
    topics_per_page = settings.LURKERFAQS_PAGES_TO_DISPLAY
    page_guide = create_page_guide(total_results/count + 1,
            settings.LURKERFAQS_PAGES_TO_DISPLAY, page)

    t = loader.get_template('topic_search.html')
    c = build_context(request, topics=topics, board=board, query=query,
        current_page=page, page_guide=page_guide)
    return HttpResponse(t.render(c))