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})
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})