diff options
| author | Adrian Holovaty <adrian@holovaty.com> | 2007-01-16 00:48:46 +0000 |
|---|---|---|
| committer | Adrian Holovaty <adrian@holovaty.com> | 2007-01-16 00:48:46 +0000 |
| commit | c9e4b372909f19e6b70c20f39ce704f99a7f659a (patch) | |
| tree | 40a88209414b017438d40fdfea6c0cb0572beac5 | |
| parent | 7ffbc9d22c62e70aff4c7c1ddcd0abebc5e6d92b (diff) | |
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
| -rw-r--r-- | django/contrib/admin/options.py | 3 | ||||
| -rw-r--r-- | django/contrib/admin/templates/admin/search_form.html | 2 | ||||
| -rw-r--r-- | django/contrib/admin/views/main.py | 7 | ||||
| -rw-r--r-- | django/db/models/base.py | 2 | ||||
| -rw-r--r-- | django/db/models/options.py | 3 |
5 files changed, 9 insertions, 8 deletions
diff --git a/django/contrib/admin/options.py b/django/contrib/admin/options.py index 1788a712d8..46f6e0445f 100644 --- a/django/contrib/admin/options.py +++ b/django/contrib/admin/options.py @@ -36,6 +36,7 @@ class ModelAdmin(object): list_display = ('__str__',) list_display_links = () list_filter = () + search_fields = () date_hierarchy = None save_as = False @@ -274,7 +275,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.date_hierarchy, self.search_fields) 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/templates/admin/search_form.html b/django/contrib/admin/templates/admin/search_form.html index 445cca3089..b232aa917d 100644 --- a/django/contrib/admin/templates/admin/search_form.html +++ b/django/contrib/admin/templates/admin/search_form.html @@ -1,6 +1,6 @@ {% load adminmedia %} {% load i18n %} -{% if cl.lookup_opts.admin.search_fields %} +{% if cl.search_fields %} <div id="toolbar"><form id="changelist-search" action="" method="get"> <div><!-- DIV needed for valid HTML --> <label for="searchbar"><img src="{% admin_media_prefix %}img/admin/icon_searchbox.png" alt="Search" /></label> diff --git a/django/contrib/admin/views/main.py b/django/contrib/admin/views/main.py index 2a4b58d1ce..e247cc4288 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): + def __init__(self, request, model, list_display, list_display_links, list_filter, date_hierarchy, search_fields): self.model = model self.opts = model._meta self.lookup_opts = self.opts @@ -301,6 +301,7 @@ class ChangeList(object): self.list_display_links = list_display_links self.list_filter = list_filter self.date_hierarchy = date_hierarchy + self.search_fields = search_fields # Get search parameters from the query string. try: @@ -474,9 +475,9 @@ class ChangeList(object): else: 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(): - 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) if qs._select_related: other_qs = other_qs.select_related() diff --git a/django/db/models/base.py b/django/db/models/base.py index a9c1f96e0a..3640bd961b 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')])) + 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) 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 a5d2472b8e..b8da8916a3 100644 --- a/django/db/models/options.py +++ b/django/db/models/options.py @@ -200,12 +200,11 @@ class Options(object): class AdminOptions(object): 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): self.fields = fields self.js = js or [] self.ordering = ordering - self.search_fields = search_fields or [] self.save_on_top = save_on_top self.list_select_related = list_select_related self.list_per_page = list_per_page |
