mirror of
https://github.com/django/django.git
synced 2025-07-04 09:49:12 +00:00
newforms-admin: Moved search_fields from AdminOptions to ModelAdmin.
git-svn-id: http://code.djangoproject.com/svn/django/branches/newforms-admin@4334 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
7ffbc9d22c
commit
c9e4b37290
@ -36,6 +36,7 @@ class ModelAdmin(object):
|
|||||||
list_display = ('__str__',)
|
list_display = ('__str__',)
|
||||||
list_display_links = ()
|
list_display_links = ()
|
||||||
list_filter = ()
|
list_filter = ()
|
||||||
|
search_fields = ()
|
||||||
date_hierarchy = None
|
date_hierarchy = None
|
||||||
save_as = False
|
save_as = False
|
||||||
|
|
||||||
@ -274,7 +275,7 @@ class ModelAdmin(object):
|
|||||||
raise PermissionDenied
|
raise PermissionDenied
|
||||||
try:
|
try:
|
||||||
cl = ChangeList(request, self.model, self.list_display, self.list_display_links, self.list_filter,
|
cl = ChangeList(request, self.model, self.list_display, self.list_display_links, self.list_filter,
|
||||||
self.date_hierarchy)
|
self.date_hierarchy, self.search_fields)
|
||||||
except IncorrectLookupParameters:
|
except IncorrectLookupParameters:
|
||||||
# Wacky lookup parameters were given, so redirect to the main
|
# Wacky lookup parameters were given, so redirect to the main
|
||||||
# changelist page, without parameters, and pass an 'invalid=1'
|
# changelist page, without parameters, and pass an 'invalid=1'
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{% load adminmedia %}
|
{% load adminmedia %}
|
||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
{% if cl.lookup_opts.admin.search_fields %}
|
{% if cl.search_fields %}
|
||||||
<div id="toolbar"><form id="changelist-search" action="" method="get">
|
<div id="toolbar"><form id="changelist-search" action="" method="get">
|
||||||
<div><!-- DIV needed for valid HTML -->
|
<div><!-- DIV needed for valid HTML -->
|
||||||
<label for="searchbar"><img src="{% admin_media_prefix %}img/admin/icon_searchbox.png" alt="Search" /></label>
|
<label for="searchbar"><img src="{% admin_media_prefix %}img/admin/icon_searchbox.png" alt="Search" /></label>
|
||||||
|
@ -292,7 +292,7 @@ def _get_deleted_objects(deleted_objects, perms_needed, user, obj, opts, current
|
|||||||
perms_needed.add(related.opts.verbose_name)
|
perms_needed.add(related.opts.verbose_name)
|
||||||
|
|
||||||
class ChangeList(object):
|
class ChangeList(object):
|
||||||
def __init__(self, request, model, list_display, list_display_links, list_filter, date_hierarchy):
|
def __init__(self, request, model, list_display, list_display_links, list_filter, date_hierarchy, search_fields):
|
||||||
self.model = model
|
self.model = model
|
||||||
self.opts = model._meta
|
self.opts = model._meta
|
||||||
self.lookup_opts = self.opts
|
self.lookup_opts = self.opts
|
||||||
@ -301,6 +301,7 @@ class ChangeList(object):
|
|||||||
self.list_display_links = list_display_links
|
self.list_display_links = list_display_links
|
||||||
self.list_filter = list_filter
|
self.list_filter = list_filter
|
||||||
self.date_hierarchy = date_hierarchy
|
self.date_hierarchy = date_hierarchy
|
||||||
|
self.search_fields = search_fields
|
||||||
|
|
||||||
# Get search parameters from the query string.
|
# Get search parameters from the query string.
|
||||||
try:
|
try:
|
||||||
@ -474,9 +475,9 @@ class ChangeList(object):
|
|||||||
else:
|
else:
|
||||||
return "%s__icontains" % field_name
|
return "%s__icontains" % field_name
|
||||||
|
|
||||||
if self.lookup_opts.admin.search_fields and self.query:
|
if self.search_fields and self.query:
|
||||||
for bit in self.query.split():
|
for bit in self.query.split():
|
||||||
or_queries = [models.Q(**{construct_search(field_name): bit}) for field_name in self.lookup_opts.admin.search_fields]
|
or_queries = [models.Q(**{construct_search(field_name): bit}) for field_name in self.search_fields]
|
||||||
other_qs = QuerySet(self.model)
|
other_qs = QuerySet(self.model)
|
||||||
if qs._select_related:
|
if qs._select_related:
|
||||||
other_qs = other_qs.select_related()
|
other_qs = other_qs.select_related()
|
||||||
|
@ -137,7 +137,7 @@ class Model(object):
|
|||||||
# of ModelAdmin.
|
# of ModelAdmin.
|
||||||
cls._meta.ModelAdmin = type('ModelAdmin', (value, ModelAdmin), {})
|
cls._meta.ModelAdmin = type('ModelAdmin', (value, ModelAdmin), {})
|
||||||
# This AdminOptions stuff is legacy and will eventually be removed.
|
# 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')]))
|
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')]))
|
||||||
value.contribute_to_class(cls, name)
|
value.contribute_to_class(cls, name)
|
||||||
elif hasattr(value, 'contribute_to_class'):
|
elif hasattr(value, 'contribute_to_class'):
|
||||||
value.contribute_to_class(cls, name)
|
value.contribute_to_class(cls, name)
|
||||||
|
@ -200,12 +200,11 @@ class Options(object):
|
|||||||
|
|
||||||
class AdminOptions(object):
|
class AdminOptions(object):
|
||||||
def __init__(self, fields=None, js=None,
|
def __init__(self, fields=None, js=None,
|
||||||
ordering=None, search_fields=None,
|
ordering=None,
|
||||||
save_on_top=False, list_select_related=False, manager=None, list_per_page=100):
|
save_on_top=False, list_select_related=False, manager=None, list_per_page=100):
|
||||||
self.fields = fields
|
self.fields = fields
|
||||||
self.js = js or []
|
self.js = js or []
|
||||||
self.ordering = ordering
|
self.ordering = ordering
|
||||||
self.search_fields = search_fields or []
|
|
||||||
self.save_on_top = save_on_top
|
self.save_on_top = save_on_top
|
||||||
self.list_select_related = list_select_related
|
self.list_select_related = list_select_related
|
||||||
self.list_per_page = list_per_page
|
self.list_per_page = list_per_page
|
||||||
|
Loading…
x
Reference in New Issue
Block a user