Пример #1
0
def show_topic(request, board_alias, topic_num):
    # /boards/<board_alias>/<topic_num>?page=2
    try:
        board = Board.objects.get(alias=board_alias)
        topic = Topic.objects.get(gfaqs_id=topic_num)
        if topic.is_hidden():
            raise Http404
    except ObjectDoesNotExist:
        raise Http404

    qs = Post.objects.filter(topic=topic).order_by('date')
    posts, current_page, page_guide = get_qs_paged(
        request, qs, settings.LURKERFAQS_POSTS_PER_PAGE)

    if not posts:
        t = loader.get_template('posts_none.html')
        c = build_context(request, topic=topic, board=topic.board)
        return HttpResponse(t.render(c))

    posts = remove_hidden_posts(posts)
    for post in posts:
        post.contents = linkify(post.contents, settings.LURKERFAQS_LINKIFY_IMG)
    op_post = posts[0]

    # get related topics to this one
    related_topics_gids = SolrSearcher.search_related_topics(
            topic, settings.LURKERFAQS_RELATED_TOPICS_COUNT)
    related_topics = list(
        Topic.objects.filter(gfaqs_id__in=related_topics_gids)
    )
    for tp in related_topics:
        load_status_icon(tp)

    payment_enabled = settings.ENABLE_PAYMENTS

    t = loader.get_template('posts_new.html')
    c = build_context(request, board=topic.board, topic=topic,
            posts=posts, op_post=op_post, related_topics=related_topics,
            current_page=current_page, page_guide=page_guide,
            payment_enabled=payment_enabled)
    return HttpResponse(t.render(c))