summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrian Holovaty <adrian@holovaty.com>2007-01-16 00:27:04 +0000
committerAdrian Holovaty <adrian@holovaty.com>2007-01-16 00:27:04 +0000
commitb4609104133b5a867954f14fabd4b3301617fb0c (patch)
treeaed056d9da5aca7fed92a75d4a909b16b1486873
parentf5441534e35be85cf789f2c18cf04259731e9bf3 (diff)
newforms-admin: Moved list_display_links from AdminOptions to ModelAdmin.
git-svn-id: http://code.djangoproject.com/svn/django/branches/newforms-admin@4331 bcc190cf-cafb-0310-a4f2-bffc1f526a37
-rw-r--r--django/contrib/admin/options.py3
-rw-r--r--django/contrib/admin/templatetags/admin_list.py2
-rw-r--r--django/contrib/admin/views/main.py3
-rw-r--r--django/core/management.py8
-rw-r--r--django/db/models/base.py2
-rw-r--r--django/db/models/options.py3
6 files changed, 11 insertions, 10 deletions
diff --git a/django/contrib/admin/options.py b/django/contrib/admin/options.py
index 614bd6df91..e6431f218e 100644
--- a/django/contrib/admin/options.py
+++ b/django/contrib/admin/options.py
@@ -34,6 +34,7 @@ class ModelAdmin(object):
"Encapsulates all admin options and functionality for a given model."
list_display = ('__str__',)
+ list_display_links = ()
list_filter = ()
def __init__(self, model):
@@ -270,7 +271,7 @@ class ModelAdmin(object):
if not self.has_change_permission(request, None):
raise PermissionDenied
try:
- cl = ChangeList(request, self.model, self.list_display, self.list_filter)
+ cl = ChangeList(request, self.model, self.list_display, self.list_display_links, self.list_filter)
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/templatetags/admin_list.py b/django/contrib/admin/templatetags/admin_list.py
index 67cc110ad7..1594db0112 100644
--- a/django/contrib/admin/templatetags/admin_list.py
+++ b/django/contrib/admin/templatetags/admin_list.py
@@ -172,7 +172,7 @@ def items_for_result(cl, result):
if result_repr == '':
result_repr = '&nbsp;'
# If list_display_links not defined, add the link tag to the first field
- if (first and not cl.lookup_opts.admin.list_display_links) or field_name in cl.lookup_opts.admin.list_display_links:
+ if (first and not cl.list_display_links) or field_name in cl.list_display_links:
table_tag = {True:'th', False:'td'}[first]
first = False
url = cl.url_for_result(result)
diff --git a/django/contrib/admin/views/main.py b/django/contrib/admin/views/main.py
index 6f2e38d28f..16f12e253b 100644
--- a/django/contrib/admin/views/main.py
+++ b/django/contrib/admin/views/main.py
@@ -292,12 +292,13 @@ 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_filter):
+ def __init__(self, request, model, list_display, list_display_links, list_filter):
self.model = model
self.opts = model._meta
self.lookup_opts = self.opts
self.manager = self.opts.admin.manager
self.list_display = list_display
+ self.list_display_links = list_display_links
self.list_filter = list_filter
# Get search parameters from the query string.
diff --git a/django/core/management.py b/django/core/management.py
index 5eba339686..202f2d27e3 100644
--- a/django/core/management.py
+++ b/django/core/management.py
@@ -996,18 +996,18 @@ def get_validation_errors(outfile, app=None):
if isinstance(f, models.ManyToManyField):
e.add(opts, '"admin.list_display" doesn\'t support ManyToManyFields (%r).' % fn)
# list_display_links
- if opts.admin.list_display_links and not opts.admin.list_display:
+ if opts.ModelAdmin.list_display_links and not opts.ModelAdmin.list_display:
e.add(opts, '"admin.list_display" must be defined for "admin.list_display_links" to be used.')
- if not isinstance(opts.admin.list_display_links, (list, tuple)):
+ if not isinstance(opts.ModelAdmin.list_display_links, (list, tuple)):
e.add(opts, '"admin.list_display_links", if given, must be set to a list or tuple.')
else:
- for fn in opts.admin.list_display_links:
+ for fn in opts.ModelAdmin.list_display_links:
try:
f = opts.get_field(fn)
except models.FieldDoesNotExist:
if not hasattr(cls, fn):
e.add(opts, '"admin.list_display_links" refers to %r, which isn\'t an attribute, method or property.' % fn)
- if fn not in opts.admin.list_display:
+ if fn not in opts.ModelAdmin.list_display:
e.add(opts, '"admin.list_display_links" refers to %r, which is not defined in "admin.list_display".' % fn)
# list_filter
if not isinstance(opts.ModelAdmin.list_filter, (list, tuple)):
diff --git a/django/db/models/base.py b/django/db/models/base.py
index f137585384..b1c603de3e 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_filter')]))
+ 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')]))
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 53097d70b1..8f6f6b0b55 100644
--- a/django/db/models/options.py
+++ b/django/db/models/options.py
@@ -199,12 +199,11 @@ class Options(object):
return self._field_types[field_type]
class AdminOptions(object):
- def __init__(self, fields=None, js=None, list_display_links=None,
+ def __init__(self, fields=None, js=None,
date_hierarchy=None, save_as=False, ordering=None, search_fields=None,
save_on_top=False, list_select_related=False, manager=None, list_per_page=100):
self.fields = fields
self.js = js or []
- self.list_display_links = list_display_links or []
self.date_hierarchy = date_hierarchy
self.save_as, self.ordering = save_as, ordering
self.search_fields = search_fields or []