From f72a100b531f680cf5595412c82827d81f8b2c29 Mon Sep 17 00:00:00 2001 From: Adrian Holovaty Date: Tue, 16 Jan 2007 00:54:58 +0000 Subject: [PATCH] newforms-admin: Moved list_per_page from AdminOptions to ModelAdmin. git-svn-id: http://code.djangoproject.com/svn/django/branches/newforms-admin@4336 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/contrib/admin/options.py | 3 ++- django/contrib/admin/views/main.py | 7 ++++--- django/db/models/base.py | 2 +- django/db/models/options.py | 3 +-- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/django/contrib/admin/options.py b/django/contrib/admin/options.py index d2fd5423a3..ca23c0ef20 100644 --- a/django/contrib/admin/options.py +++ b/django/contrib/admin/options.py @@ -37,6 +37,7 @@ class ModelAdmin(object): list_display_links = () list_filter = () list_select_related = False + list_per_page = 100 search_fields = () date_hierarchy = None save_as = False @@ -276,7 +277,7 @@ class ModelAdmin(object): raise PermissionDenied try: cl = ChangeList(request, self.model, self.list_display, self.list_display_links, self.list_filter, - self.date_hierarchy, self.search_fields, self.list_select_related) + self.date_hierarchy, self.search_fields, self.list_select_related, self.list_per_page) except IncorrectLookupParameters: # Wacky lookup parameters were given, so redirect to the main # changelist page, without parameters, and pass an 'invalid=1' diff --git a/django/contrib/admin/views/main.py b/django/contrib/admin/views/main.py index d785952b19..a4e2e0dac2 100644 --- a/django/contrib/admin/views/main.py +++ b/django/contrib/admin/views/main.py @@ -292,7 +292,7 @@ def _get_deleted_objects(deleted_objects, perms_needed, user, obj, opts, current perms_needed.add(related.opts.verbose_name) class ChangeList(object): - def __init__(self, request, model, list_display, list_display_links, list_filter, date_hierarchy, search_fields, list_select_related): + def __init__(self, request, model, list_display, list_display_links, list_filter, date_hierarchy, search_fields, list_select_related, list_per_page): self.model = model self.opts = model._meta self.lookup_opts = self.opts @@ -303,6 +303,7 @@ class ChangeList(object): self.date_hierarchy = date_hierarchy self.search_fields = search_fields self.list_select_related = list_select_related + self.list_per_page = list_per_page # Get search parameters from the query string. try: @@ -351,7 +352,7 @@ class ChangeList(object): return '?' + '&'.join(['%s=%s' % (k, v) for k, v in p.items()]).replace(' ', '%20') def get_results(self, request): - paginator = ObjectPaginator(self.query_set, self.lookup_opts.admin.list_per_page) + paginator = ObjectPaginator(self.query_set, self.list_per_page) # Get the number of objects, with admin filters applied. try: @@ -373,7 +374,7 @@ class ChangeList(object): full_result_count = self.manager.count() can_show_all = result_count <= MAX_SHOW_ALL_ALLOWED - multi_page = result_count > self.lookup_opts.admin.list_per_page + multi_page = result_count > self.list_per_page # Get the list of objects to display on this page. if (self.show_all and can_show_all) or not multi_page: diff --git a/django/db/models/base.py b/django/db/models/base.py index 920d6ab947..ecd3cd4f71 100644 --- a/django/db/models/base.py +++ b/django/db/models/base.py @@ -137,7 +137,7 @@ class Model(object): # of ModelAdmin. cls._meta.ModelAdmin = type('ModelAdmin', (value, ModelAdmin), {}) # This AdminOptions stuff is legacy and will eventually be removed. - value = AdminOptions(**dict([(k, v) for k, v in value.__dict__.items() if not k.startswith('_') and k not in ('list_display', 'list_display_links', 'list_filter', 'date_hierarchy', 'save_as', 'search_fields', 'list_select_related')])) + value = AdminOptions(**dict([(k, v) for k, v in value.__dict__.items() if not k.startswith('_') and k not in ('list_display', 'list_display_links', 'list_filter', 'date_hierarchy', 'save_as', 'search_fields', 'list_select_related', 'list_per_page')])) value.contribute_to_class(cls, name) elif hasattr(value, 'contribute_to_class'): value.contribute_to_class(cls, name) diff --git a/django/db/models/options.py b/django/db/models/options.py index c09fe31821..77d656d36e 100644 --- a/django/db/models/options.py +++ b/django/db/models/options.py @@ -201,12 +201,11 @@ class Options(object): class AdminOptions(object): def __init__(self, fields=None, js=None, ordering=None, - save_on_top=False, manager=None, list_per_page=100): + save_on_top=False, manager=None): self.fields = fields self.js = js or [] self.ordering = ordering self.save_on_top = save_on_top - self.list_per_page = list_per_page self.manager = manager or Manager() def get_field_sets(self, opts):