Moved admin options into inner "class Admin." Also refactored the model code so
that models.fields.Admin became models.options.AdminOptions. This means that old code that uses "admin = models.Admin()" will now break until it's replaced with the new syntax. (You can still use "admin = meta.AdminOptions(...)" if you care to, but I don't see why.) git-svn-id: http://code.djangoproject.com/svn/django/branches/magic-removal@1864 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
8c07571a15
commit
1b0ccdce17
|
@ -26,9 +26,8 @@ class Group(models.Model):
|
|||
verbose_name = _('Group')
|
||||
verbose_name_plural = _('Groups')
|
||||
ordering = ('name',)
|
||||
admin = models.Admin(
|
||||
search_fields = ('name',),
|
||||
)
|
||||
class Admin:
|
||||
search_fields = ('name',)
|
||||
|
||||
def __repr__(self):
|
||||
return self.name
|
||||
|
@ -69,18 +68,17 @@ class User(models.Model):
|
|||
verbose_name_plural = _('Users')
|
||||
ordering = ('username',)
|
||||
exceptions = ('SiteProfileNotAvailable',)
|
||||
admin = models.Admin(
|
||||
fields = (
|
||||
(None, {'fields': ('username', 'password')}),
|
||||
(_('Personal info'), {'fields': ('first_name', 'last_name', 'email')}),
|
||||
(_('Permissions'), {'fields': ('is_staff', 'is_active', 'is_superuser', 'user_permissions')}),
|
||||
(_('Important dates'), {'fields': ('last_login', 'date_joined')}),
|
||||
(_('Groups'), {'fields': ('groups',)}),
|
||||
),
|
||||
list_display = ('username', 'email', 'first_name', 'last_name', 'is_staff'),
|
||||
list_filter = ('is_staff', 'is_superuser'),
|
||||
search_fields = ('username', 'first_name', 'last_name', 'email'),
|
||||
class Admin:
|
||||
fields = (
|
||||
(None, {'fields': ('username', 'password')}),
|
||||
(_('Personal info'), {'fields': ('first_name', 'last_name', 'email')}),
|
||||
(_('Permissions'), {'fields': ('is_staff', 'is_active', 'is_superuser', 'user_permissions')}),
|
||||
(_('Important dates'), {'fields': ('last_login', 'date_joined')}),
|
||||
(_('Groups'), {'fields': ('groups',)}),
|
||||
)
|
||||
list_display = ('username', 'email', 'first_name', 'last_name', 'is_staff')
|
||||
list_filter = ('is_staff', 'is_superuser')
|
||||
search_fields = ('username', 'first_name', 'last_name', 'email')
|
||||
|
||||
def __repr__(self):
|
||||
return self.username
|
||||
|
|
|
@ -91,18 +91,17 @@ class Comment(models.Model):
|
|||
verbose_name = _('Comment')
|
||||
verbose_name_plural = _('Comments')
|
||||
ordering = ('-submit_date',)
|
||||
admin = models.Admin(
|
||||
fields = (
|
||||
(None, {'fields': ('content_type', 'object_id', 'site')}),
|
||||
('Content', {'fields': ('user', 'headline', 'comment')}),
|
||||
('Ratings', {'fields': ('rating1', 'rating2', 'rating3', 'rating4', 'rating5', 'rating6', 'rating7', 'rating8', 'valid_rating')}),
|
||||
('Meta', {'fields': ('is_public', 'is_removed', 'ip_address')}),
|
||||
),
|
||||
list_display = ('user', 'submit_date', 'content_type', 'get_content_object'),
|
||||
list_filter = ('submit_date',),
|
||||
date_hierarchy = 'submit_date',
|
||||
search_fields = ('comment', 'user__username'),
|
||||
class Admin:
|
||||
fields = (
|
||||
(None, {'fields': ('content_type', 'object_id', 'site')}),
|
||||
('Content', {'fields': ('user', 'headline', 'comment')}),
|
||||
('Ratings', {'fields': ('rating1', 'rating2', 'rating3', 'rating4', 'rating5', 'rating6', 'rating7', 'rating8', 'valid_rating')}),
|
||||
('Meta', {'fields': ('is_public', 'is_removed', 'ip_address')}),
|
||||
)
|
||||
list_display = ('user', 'submit_date', 'content_type', 'get_content_object')
|
||||
list_filter = ('submit_date',)
|
||||
date_hierarchy = 'submit_date'
|
||||
search_fields = ('comment', 'user__username')
|
||||
|
||||
def __repr__(self):
|
||||
return "%s: %s..." % (self.get_user().username, self.comment[:100])
|
||||
|
@ -179,17 +178,16 @@ class FreeComment(models.Model):
|
|||
verbose_name = _('Free comment')
|
||||
verbose_name_plural = _('Free comments')
|
||||
ordering = ('-submit_date',)
|
||||
admin = models.Admin(
|
||||
fields = (
|
||||
(None, {'fields': ('content_type', 'object_id', 'site')}),
|
||||
('Content', {'fields': ('person_name', 'comment')}),
|
||||
('Meta', {'fields': ('submit_date', 'is_public', 'ip_address', 'approved')}),
|
||||
),
|
||||
list_display = ('person_name', 'submit_date', 'content_type', 'get_content_object'),
|
||||
list_filter = ('submit_date',),
|
||||
date_hierarchy = 'submit_date',
|
||||
search_fields = ('comment', 'person_name'),
|
||||
class Admin:
|
||||
fields = (
|
||||
(None, {'fields': ('content_type', 'object_id', 'site')}),
|
||||
('Content', {'fields': ('person_name', 'comment')}),
|
||||
('Meta', {'fields': ('submit_date', 'is_public', 'ip_address', 'approved')}),
|
||||
)
|
||||
list_display = ('person_name', 'submit_date', 'content_type', 'get_content_object')
|
||||
list_filter = ('submit_date',)
|
||||
date_hierarchy = 'submit_date'
|
||||
search_fields = ('comment', 'person_name')
|
||||
|
||||
def __repr__(self):
|
||||
return "%s: %s..." % (self.person_name, self.comment[:100])
|
||||
|
|
|
@ -18,14 +18,13 @@ class FlatPage(models.Model):
|
|||
verbose_name = _('flat page')
|
||||
verbose_name_plural = _('flat pages')
|
||||
ordering = ('url',)
|
||||
admin = models.Admin(
|
||||
fields = (
|
||||
(None, {'fields': ('url', 'title', 'content', 'sites')}),
|
||||
('Advanced options', {'classes': 'collapse', 'fields': ('enable_comments', 'registration_required', 'template_name')}),
|
||||
),
|
||||
list_filter = ('sites',),
|
||||
search_fields = ('url', 'title'),
|
||||
class Admin:
|
||||
fields = (
|
||||
(None, {'fields': ('url', 'title', 'content', 'sites')}),
|
||||
('Advanced options', {'classes': 'collapse', 'fields': ('enable_comments', 'registration_required', 'template_name')}),
|
||||
)
|
||||
list_filter = ('sites',)
|
||||
search_fields = ('url', 'title')
|
||||
|
||||
def __repr__(self):
|
||||
return "%s -- %s" % (self.url, self.title)
|
||||
|
|
|
@ -14,10 +14,9 @@ class Redirect(models.Model):
|
|||
db_table = 'django_redirects'
|
||||
unique_together=(('site', 'old_path'),)
|
||||
ordering = ('old_path',)
|
||||
admin = models.Admin(
|
||||
list_filter = ('site',),
|
||||
search_fields = ('old_path', 'new_path'),
|
||||
)
|
||||
class Admin:
|
||||
list_filter = ('site',)
|
||||
search_fields = ('old_path', 'new_path')
|
||||
|
||||
def __repr__(self):
|
||||
return "%s ---> %s" % (self.old_path, self.new_path)
|
||||
|
|
|
@ -14,10 +14,9 @@ class Site(models.Model):
|
|||
verbose_name = _('site')
|
||||
verbose_name_plural = _('sites')
|
||||
ordering = ('domain',)
|
||||
admin = models.Admin(
|
||||
list_display = ('domain', 'name'),
|
||||
search_fields = ('domain', 'name'),
|
||||
)
|
||||
class Admin:
|
||||
list_display = ('domain', 'name')
|
||||
search_fields = ('domain', 'name')
|
||||
|
||||
def __repr__(self):
|
||||
return self.domain
|
||||
|
|
|
@ -806,8 +806,8 @@ def get_validation_errors(outfile):
|
|||
|
||||
# Check admin attribute.
|
||||
if opts.admin is not None:
|
||||
if not isinstance(opts.admin, models.Admin):
|
||||
e.add(opts, '"admin" attribute, if given, must be set to a models.Admin() instance.')
|
||||
if not isinstance(opts.admin, models.AdminOptions):
|
||||
e.add(opts, '"admin" attribute, if given, must be set to a models.AdminOptions() instance.')
|
||||
else:
|
||||
# list_display
|
||||
if not isinstance(opts.admin.list_display, (list, tuple)):
|
||||
|
|
|
@ -9,7 +9,7 @@ from django.utils.text import capfirst
|
|||
from django.db.models.loading import get_installed_models, get_installed_model_modules
|
||||
from django.db.models.query import Q
|
||||
from django.db.models.manager import Manager
|
||||
from django.db.models.base import Model
|
||||
from django.db.models.base import Model, AdminOptions
|
||||
|
||||
from django.db.models.fields import *
|
||||
from django.db.models.fields.related import *
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
import django.db.models.manipulators
|
||||
import django.db.models.manager
|
||||
from django.db.models.fields import AutoField, ImageField, Admin
|
||||
from django.db.models.fields import AutoField, ImageField
|
||||
from django.db.models.fields.related import OneToOne, ManyToOne
|
||||
from django.db.models.related import RelatedObject
|
||||
from django.db.models.query import orderlist2sql
|
||||
from django.db.models.options import Options
|
||||
from django.db.models.options import Options, AdminOptions
|
||||
from django.db import connection, backend
|
||||
from django.db.models import signals
|
||||
from django.dispatch import dispatcher
|
||||
|
@ -20,7 +20,7 @@ import os
|
|||
if not hasattr(__builtins__, 'set'):
|
||||
from sets import Set as set
|
||||
|
||||
attribute_transforms = {'Admin': lambda cls: Admin(**cls.__dict__)}
|
||||
attribute_transforms = {'Admin': lambda cls: AdminOptions(**dict([(k,v) for (k,v) in cls.__dict__.items() if not k.startswith('_')]))}
|
||||
|
||||
class ModelBase(type):
|
||||
"Metaclass for all models"
|
||||
|
|
|
@ -790,35 +790,3 @@ class FieldSet(object):
|
|||
|
||||
def __len__(self):
|
||||
return len(self.field_lines)
|
||||
|
||||
class Admin:
|
||||
def __init__(self, fields=None, js=None, list_display=None, list_filter=None, date_hierarchy=None,
|
||||
save_as=False, ordering=None, search_fields=None, save_on_top=False, list_select_related=False):
|
||||
self.fields = fields
|
||||
self.js = js or []
|
||||
self.list_display = list_display or ['__repr__']
|
||||
self.list_filter = list_filter or []
|
||||
self.date_hierarchy = date_hierarchy
|
||||
self.save_as, self.ordering = save_as, ordering
|
||||
self.search_fields = search_fields or []
|
||||
self.save_on_top = save_on_top
|
||||
self.list_select_related = list_select_related
|
||||
|
||||
def get_field_sets(self, opts):
|
||||
if self.fields is None:
|
||||
field_struct = ((None, {
|
||||
'fields': [f.name for f in opts.fields + opts.many_to_many if f.editable and not isinstance(f, AutoField)]
|
||||
}),)
|
||||
else:
|
||||
field_struct = self.fields
|
||||
new_fieldset_list = []
|
||||
for fieldset in field_struct:
|
||||
name = fieldset[0]
|
||||
fs_options = fieldset[1]
|
||||
classes = fs_options.get('classes', ())
|
||||
line_specs = fs_options['fields']
|
||||
new_fieldset_list.append(FieldSet(name, classes, opts.get_field, line_specs))
|
||||
return new_fieldset_list
|
||||
|
||||
def contribute_to_class(self, cls, name):
|
||||
cls._meta.admin = self
|
|
@ -1,6 +1,6 @@
|
|||
from django.db.models.related import RelatedObject
|
||||
from django.db.models.fields.related import ManyToMany
|
||||
from django.db.models.fields import AutoField
|
||||
from django.db.models.fields import AutoField, FieldSet
|
||||
from django.db.models.loading import get_installed_model_modules
|
||||
from django.db.models.query import orderlist2sql
|
||||
from django.db.models.exceptions import FieldDoesNotExist
|
||||
|
@ -216,3 +216,36 @@ class Options:
|
|||
else:
|
||||
self._field_types[field_type] = False
|
||||
return self._field_types[field_type]
|
||||
|
||||
|
||||
class AdminOptions:
|
||||
def __init__(self, fields=None, js=None, list_display=None, list_filter=None, date_hierarchy=None,
|
||||
save_as=False, ordering=None, search_fields=None, save_on_top=False, list_select_related=False):
|
||||
self.fields = fields
|
||||
self.js = js or []
|
||||
self.list_display = list_display or ['__repr__']
|
||||
self.list_filter = list_filter or []
|
||||
self.date_hierarchy = date_hierarchy
|
||||
self.save_as, self.ordering = save_as, ordering
|
||||
self.search_fields = search_fields or []
|
||||
self.save_on_top = save_on_top
|
||||
self.list_select_related = list_select_related
|
||||
|
||||
def get_field_sets(self, opts):
|
||||
if self.fields is None:
|
||||
field_struct = ((None, {
|
||||
'fields': [f.name for f in opts.fields + opts.many_to_many if f.editable and not isinstance(f, AutoField)]
|
||||
}),)
|
||||
else:
|
||||
field_struct = self.fields
|
||||
new_fieldset_list = []
|
||||
for fieldset in field_struct:
|
||||
name = fieldset[0]
|
||||
fs_options = fieldset[1]
|
||||
classes = fs_options.get('classes', ())
|
||||
line_specs = fs_options['fields']
|
||||
new_fieldset_list.append(FieldSet(name, classes, opts.get_field, line_specs))
|
||||
return new_fieldset_list
|
||||
|
||||
def contribute_to_class(self, cls, name):
|
||||
cls._meta.admin = self
|
Loading…
Reference in New Issue