Exemplo n.º 1
0
def changelog(request, page_url=None):
    """This view display a change log for a given WikiPage or
    all change logs in djwiki.

    Attributes:
        request: HttpRequest object representing the current request object.
        page_url: WikiPage url, maybe None.

    Returns:
        response: HttpResponse object used to render index page using
            changelog.html page.

    """

    title = 'Global History'
    page_number = request.GET.get('page', 1)

    # If page_url is present then Changelog entries for that WikiPage should be
    # displayed.
    if page_url:
        try:
            # Trying to fetch wiki page given its page url.
            wikipage = WikiPage.objects.get(url=page_url)
            title = '"%s" History' % wikipage.title

        except exceptions.ObjectDoesNotExist:
            # Redirect response to wikipage edit view.
            return HttpResponseRedirect(
                urlresolvers.reverse('edit_page', args=[page_url]))

        else:
            # Filter ChangeLog entries for a WikiPage instance.
            changelogs = utils.get_view_paginator(
                Changelog, page_number, filters={'wikipage': wikipage})
    else:
        # Return all ChangeLog instances in djwiki.
        changelogs = utils.get_view_paginator(Changelog, page_number)

    return render(request, 'changelog.html', {'title': title,
                                              'page_url': page_url,
                                              'changelogs': changelogs})
Exemplo n.º 2
0
def index(request):
    """This view serves an index page showing all the WikiPage instances in the
    system.

    Attributes:
        request: HttpRequest object representing the current request object.

    Returns:
        response: HttpResponse object used to render index page using
            index.html page.
    """

    page_number = request.GET.get('page', 1)
    wikipages = utils.get_view_paginator(WikiPage, page_number, count=10,
                                         ordering='url')

    return render(request, 'index.html', {'title': 'Index',
                                          'wikipages': wikipages})