X-Git-Url: https://git.mdrn.pl/django-pagination.git/blobdiff_plain/66ce4cd0b0c8dab29de4dc992e81bcb2fb030e5a..947647e585b7621a41b8a5d1e72f9d6924cf6750:/pagination/templatetags/pagination_tags.py?ds=inline diff --git a/pagination/templatetags/pagination_tags.py b/pagination/templatetags/pagination_tags.py index 3733434..ae843b1 100644 --- a/pagination/templatetags/pagination_tags.py +++ b/pagination/templatetags/pagination_tags.py @@ -104,7 +104,8 @@ class AutoPaginateNode(template.Node): context['page_obj'] = page_obj return u'' -def paginate(context, window=DEFAULT_WINDOW): + +def paginate(context, window=DEFAULT_WINDOW, hashtag=''): """ Renders the ``pagination/pagination.html`` template, resulting in a Digg-like display of the available pages, given the current page. If there @@ -133,6 +134,11 @@ def paginate(context, window=DEFAULT_WINDOW): paginator = context['paginator'] page_obj = context['page_obj'] page_range = paginator.page_range + # Calculate the record range in the current page for display. + records = {'first': 1 + (page_obj.number - 1) * paginator.per_page} + records['last'] = records['first'] + paginator.per_page - 1 + if records['last'] + paginator.orphans >= paginator.count: + records['last'] = paginator.count # First and last are simply the first *n* pages and the last *n* pages, # where *n* is the current window size. first = set(page_range[:window]) @@ -201,8 +207,10 @@ def paginate(context, window=DEFAULT_WINDOW): to_return = { 'MEDIA_URL': settings.MEDIA_URL, 'pages': pages, + 'records': records, 'page_obj': page_obj, 'paginator': paginator, + 'hashtag': hashtag, 'is_paginated': paginator.count > paginator.per_page, } if 'request' in context: