Beispiel #1
0
def document_detail_view(request, node, thread):
    """
        Detail of library Document
    """

    document = thread.get_document()
    main_post = thread._main_post()

    to_tmpl = {
        "node": thread.node,
        "document": document,
        "file_size": None,
        "main_post": main_post,
        "module": const.NODE_MODULE_LIBRARY,
        'similar_threads': thread.get_similar_threads(),
        "thread": thread,
    }

    if document and document.latest_revision:
        to_tmpl.update({
            "file_size": document.latest_revision.get_size()
        })

    # count visit for thread
    count_visit(request, thread, main_post)

    # at the end we call thread.visit, we dont need celery for this
    # operate with ThreadView
    thread.visit(request.user)

    if document and document.latest_revision:
        try:
            page_no = int(request.GET.get("page", 1))
        except ValueError:
            page_no = 1

        page_qs = document.get_pages(page_no)
        if page_qs.exists():
            page = page_qs[0]
        else:
            page = None

        to_tmpl.update({
            "page": page,
            "pages_numbers": document.latest_revision.pages.values_list("number", flat=True)
        })

    return render_into_skin("node/document/detail.html", to_tmpl, request)
Beispiel #2
0
def document_detail_view(request, node, thread):
    """
        Detail of library Document
    """

    document = thread.get_document()
    main_post = thread._main_post()

    to_tmpl = {
        "node": thread.node,
        "document": document,
        "file_size": None,
        "main_post": main_post,
        "module": const.NODE_MODULE_LIBRARY,
        'similar_threads': thread.get_similar_threads(),
        "thread": thread,
    }

    if document and document.latest_revision:
        to_tmpl.update({"file_size": document.latest_revision.get_size()})

    # count visit for thread
    count_visit(request, thread, main_post)

    # at the end we call thread.visit, we dont need celery for this
    # operate with ThreadView
    thread.visit(request.user)

    if document and document.latest_revision:
        try:
            page_no = int(request.GET.get("page", 1))
        except ValueError:
            page_no = 1

        page_qs = document.get_pages(page_no)
        if page_qs.exists():
            page = page_qs[0]
        else:
            page = None

        to_tmpl.update({
            "page":
            page,
            "pages_numbers":
            document.latest_revision.pages.values_list("number", flat=True)
        })

    return render_into_skin("node/document/detail.html", to_tmpl, request)
Beispiel #3
0
    if thread.is_question():
        per_page = maxint
    else:
        per_page = const.ANSWERS_PAGE_SIZE

    # define posts position on paginator pages
    posts_per_pages = {}
    for i, post in enumerate(answers):
        posts_per_pages[post.pk] = 1 + (i // per_page)

    objects_list = Paginator(answers, per_page)
    if show_page > objects_list.num_pages:
        return HttpResponseRedirect(main_post.get_absolute_url())
    page_objects = objects_list.page(show_page)

    count_visit(request, thread, main_post)

    base_url = request.path + '?sort=%s&' % answer_sort_method
    if authors:
        base_url = "%sauthors=%s&" % (
            base_url,
            ",".join([str(pk) for pk in authors.values_list("pk", flat=True)])
        )

    paginator_data = {
        'is_paginated': (objects_list.count > per_page),
        'pages': objects_list.num_pages,
        'page': show_page,
        'has_previous': page_objects.has_previous(),
        'has_next': page_objects.has_next(),
        'previous': page_objects.previous_page_number(),
Beispiel #4
0
    if thread.is_question():
        per_page = maxint
    else:
        per_page = const.ANSWERS_PAGE_SIZE

    # define posts position on paginator pages
    posts_per_pages = {}
    for i, post in enumerate(answers):
        posts_per_pages[post.pk] = 1 + (i // per_page)

    objects_list = Paginator(answers, per_page)
    if show_page > objects_list.num_pages:
        return HttpResponseRedirect(main_post.get_absolute_url())
    page_objects = objects_list.page(show_page)

    count_visit(request, thread, main_post)

    base_url = request.path + '?sort=%s&' % answer_sort_method
    if authors:
        base_url = "%sauthors=%s&" % (base_url, ",".join(
            [str(pk) for pk in authors.values_list("pk", flat=True)]))

    paginator_data = {
        'is_paginated': (objects_list.count > per_page),
        'pages': objects_list.num_pages,
        'page': show_page,
        'has_previous': page_objects.has_previous(),
        'has_next': page_objects.has_next(),
        'previous': page_objects.previous_page_number(),
        'next': page_objects.next_page_number(),
        'base_url': base_url,