Fixed #6852 -- Converted the admin to use the new paginator, to remove DeprecationWarnings. Thanks for the patch, nickefford

git-svn-id: http://code.djangoproject.com/svn/django/trunk@7363 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Adrian Holovaty 2008-03-25 05:20:55 +00:00
parent 3d779efbe5
commit 054c2e4af3
2 changed files with 10 additions and 10 deletions

View File

@ -22,7 +22,7 @@ def paginator_number(cl,i):
elif i == cl.page_num: elif i == cl.page_num:
return mark_safe(u'<span class="this-page">%d</span> ' % (i+1)) return mark_safe(u'<span class="this-page">%d</span> ' % (i+1))
else: else:
return mark_safe(u'<a href="%s"%s>%d</a> ' % (cl.get_query_string({PAGE_VAR: i}), (i == cl.paginator.pages-1 and ' class="end"' or ''), i+1)) return mark_safe(u'<a href="%s"%s>%d</a> ' % (cl.get_query_string({PAGE_VAR: i}), (i == cl.paginator.num_pages-1 and ' class="end"' or ''), i+1))
paginator_number = register.simple_tag(paginator_number) paginator_number = register.simple_tag(paginator_number)
def pagination(cl): def pagination(cl):
@ -37,8 +37,8 @@ def pagination(cl):
# If there are 10 or fewer pages, display links to every page. # If there are 10 or fewer pages, display links to every page.
# Otherwise, do some fancy # Otherwise, do some fancy
if paginator.pages <= 10: if paginator.num_pages <= 10:
page_range = range(paginator.pages) page_range = range(paginator.num_pages)
else: else:
# Insert "smart" pagination links, so that there are always ON_ENDS # Insert "smart" pagination links, so that there are always ON_ENDS
# links at either end of the list of pages, and there are always # links at either end of the list of pages, and there are always
@ -50,12 +50,12 @@ def pagination(cl):
page_range.extend(range(page_num - ON_EACH_SIDE, page_num + 1)) page_range.extend(range(page_num - ON_EACH_SIDE, page_num + 1))
else: else:
page_range.extend(range(0, page_num + 1)) page_range.extend(range(0, page_num + 1))
if page_num < (paginator.pages - ON_EACH_SIDE - ON_ENDS - 1): if page_num < (paginator.num_pages - ON_EACH_SIDE - ON_ENDS - 1):
page_range.extend(range(page_num + 1, page_num + ON_EACH_SIDE + 1)) page_range.extend(range(page_num + 1, page_num + ON_EACH_SIDE + 1))
page_range.append(DOT) page_range.append(DOT)
page_range.extend(range(paginator.pages - ON_ENDS, paginator.pages)) page_range.extend(range(paginator.num_pages - ON_ENDS, paginator.num_pages))
else: else:
page_range.extend(range(page_num + 1, paginator.pages)) page_range.extend(range(page_num + 1, paginator.num_pages))
need_show_all_link = cl.can_show_all and not cl.show_all and cl.multi_page need_show_all_link = cl.can_show_all and not cl.show_all and cl.multi_page
return { return {

View File

@ -5,7 +5,7 @@ from django.contrib.admin.views.decorators import staff_member_required
from django.views.decorators.cache import never_cache from django.views.decorators.cache import never_cache
from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.models import ContentType
from django.core.exceptions import ImproperlyConfigured, ObjectDoesNotExist, PermissionDenied from django.core.exceptions import ImproperlyConfigured, ObjectDoesNotExist, PermissionDenied
from django.core.paginator import ObjectPaginator, InvalidPage from django.core.paginator import QuerySetPaginator, InvalidPage
from django.shortcuts import get_object_or_404, render_to_response from django.shortcuts import get_object_or_404, render_to_response
from django.db import models from django.db import models
from django.db.models.query import handle_legacy_orderlist, QuerySet from django.db.models.query import handle_legacy_orderlist, QuerySet
@ -611,11 +611,11 @@ class ChangeList(object):
return mark_safe('?' + '&amp;'.join([u'%s=%s' % (k, v) for k, v in p.items()]).replace(' ', '%20')) return mark_safe('?' + '&amp;'.join([u'%s=%s' % (k, v) for k, v in p.items()]).replace(' ', '%20'))
def get_results(self, request): def get_results(self, request):
paginator = ObjectPaginator(self.query_set, self.lookup_opts.admin.list_per_page) paginator = QuerySetPaginator(self.query_set, self.lookup_opts.admin.list_per_page)
# Get the number of objects, with admin filters applied. # Get the number of objects, with admin filters applied.
try: try:
result_count = paginator.hits result_count = paginator.count
# Naked except! Because we don't have any other way of validating # Naked except! Because we don't have any other way of validating
# "params". They might be invalid if the keyword arguments are # "params". They might be invalid if the keyword arguments are
# incorrect, or if the values are not in the correct type (which would # incorrect, or if the values are not in the correct type (which would
@ -640,7 +640,7 @@ class ChangeList(object):
result_list = list(self.query_set) result_list = list(self.query_set)
else: else:
try: try:
result_list = paginator.get_page(self.page_num) result_list = paginator.page(self.page_num+1).object_list
except InvalidPage: except InvalidPage:
result_list = () result_list = ()