Author: adrian
Date: 2007-02-02 14:37:10 -0600 (Fri, 02 Feb 2007)
New Revision: 4458
Modified:
django/branches/newforms-admin/django/contrib/admin/options.py
django/branches/newforms-admin/django/contrib/auth/models.py
django/branches/newforms-admin/django/db/models/fields/__init__.py
django/branches/newforms-admin/django/db/models/fields/generic.py
django/branches/newforms-admin/django/db/models/fields/related.py
Log:
newforms-admin: Backwards-incompatible change: Removed 'filter_interface'
option on ManyToManyFields, in favor of 'filter_vertical' and
'filter_horizontal' options on 'class Admin'
Modified: django/branches/newforms-admin/django/contrib/admin/options.py
===================================================================
--- django/branches/newforms-admin/django/contrib/admin/options.py
2007-02-02 20:06:20 UTC (rev 4457)
+++ django/branches/newforms-admin/django/contrib/admin/options.py
2007-02-02 20:37:10 UTC (rev 4458)
@@ -111,6 +111,8 @@
fields = None
raw_id_fields = ()
prepopulated_fields = {}
+ filter_vertical = ()
+ filter_horizontal = ()
def __init__(self, model):
self.model = model
@@ -155,10 +157,8 @@
js.extend(['js/getElementsBySelector.js', 'js/dom-drag.js' ,
'js/admin/ordering.js'])
if self.js:
js.extend(self.js)
- for f in self.opts.many_to_many:
- if f.rel.filter_interface:
- js.extend(['js/SelectBox.js' , 'js/SelectFilter2.js'])
- break
+ if self.filter_vertical or self.filter_horizontal:
+ js.extend(['js/SelectBox.js' , 'js/SelectFilter2.js'])
for fs in fieldsets:
if 'collapse' in fs.classes:
js.append('js/admin/CollapsedFieldsets.js')
@@ -205,9 +205,9 @@
If kwargs are given, they're passed to the form Field's constructor.
"""
- # For filter_interface ManyToManyFields, use a special Widget.
- if isinstance(db_field, models.ManyToManyField) and
db_field.rel.filter_interface:
- kwargs['widget'] =
widgets.FilteredSelectMultiple(db_field.verbose_name,
db_field.rel.filter_interface-1)
+ # For ManyToManyFields with a filter interface, use a special Widget.
+ if isinstance(db_field, models.ManyToManyField) and db_field.name in
(self.filter_vertical + self.filter_horizontal):
+ kwargs['widget'] =
widgets.FilteredSelectMultiple(db_field.verbose_name, (db_field.name in
self.filter_vertical))
return db_field.formfield(**kwargs)
# For DateTimeFields, use a special field and widget.
Modified: django/branches/newforms-admin/django/contrib/auth/models.py
===================================================================
--- django/branches/newforms-admin/django/contrib/auth/models.py
2007-02-02 20:06:20 UTC (rev 4457)
+++ django/branches/newforms-admin/django/contrib/auth/models.py
2007-02-02 20:37:10 UTC (rev 4458)
@@ -55,13 +55,14 @@
Beyond permissions, groups are a convenient way to categorize users to
apply some label, or extended functionality, to them. For example, you could
create a group 'Special users', and you could write code that would do special
things to those users -- such as giving them access to a members-only portion
of your site, or sending them members-only e-mail messages.
"""
name = models.CharField(_('name'), maxlength=80, unique=True)
- permissions = models.ManyToManyField(Permission,
verbose_name=_('permissions'), blank=True, filter_interface=models.HORIZONTAL)
+ permissions = models.ManyToManyField(Permission,
verbose_name=_('permissions'), blank=True)
class Meta:
verbose_name = _('group')
verbose_name_plural = _('groups')
ordering = ('name',)
class Admin:
search_fields = ('name',)
+ filter_horizontal = ('permissions',)
def __str__(self):
return self.name
@@ -99,7 +100,7 @@
date_joined = models.DateTimeField(_('date joined'),
default=models.LazyDate())
groups = models.ManyToManyField(Group, verbose_name=_('groups'),
blank=True,
help_text=_("In addition to the permissions manually assigned, this
user will also get all permissions granted to each group he/she is in."))
- user_permissions = models.ManyToManyField(Permission, verbose_name=_('user
permissions'), blank=True, filter_interface=models.HORIZONTAL)
+ user_permissions = models.ManyToManyField(Permission, verbose_name=_('user
permissions'), blank=True)
objects = UserManager()
class Meta:
verbose_name = _('user')
@@ -116,6 +117,7 @@
list_display = ('username', 'email', 'first_name', 'last_name',
'is_staff')
list_filter = ('is_staff', 'is_superuser')
search_fields = ('username', 'first_name', 'last_name', 'email')
+ filter_horizontal = ('user_permissions',)
def __str__(self):
return self.username
Modified: django/branches/newforms-admin/django/db/models/fields/__init__.py
===================================================================
--- django/branches/newforms-admin/django/db/models/fields/__init__.py
2007-02-02 20:06:20 UTC (rev 4457)
+++ django/branches/newforms-admin/django/db/models/fields/__init__.py
2007-02-02 20:37:10 UTC (rev 4458)
@@ -14,7 +14,6 @@
class NOT_PROVIDED:
pass
-# Values for filter_interface.
HORIZONTAL, VERTICAL = 1, 2
# The values to use for "blank" in SelectFields. Will be appended to the start
of most "choices" lists.
Modified: django/branches/newforms-admin/django/db/models/fields/generic.py
===================================================================
--- django/branches/newforms-admin/django/db/models/fields/generic.py
2007-02-02 20:06:20 UTC (rev 4457)
+++ django/branches/newforms-admin/django/db/models/fields/generic.py
2007-02-02 20:37:10 UTC (rev 4458)
@@ -249,7 +249,6 @@
self.to = to
self.num_in_admin = 0
self.related_name = related_name
- self.filter_interface = None
self.limit_choices_to = limit_choices_to or {}
self.edit_inline = False
self.symmetrical = symmetrical
Modified: django/branches/newforms-admin/django/db/models/fields/related.py
===================================================================
--- django/branches/newforms-admin/django/db/models/fields/related.py
2007-02-02 20:06:20 UTC (rev 4457)
+++ django/branches/newforms-admin/django/db/models/fields/related.py
2007-02-02 20:37:10 UTC (rev 4458)
@@ -616,7 +616,6 @@
kwargs['rel'] = ManyToManyRel(to,
num_in_admin=kwargs.pop('num_in_admin', 0),
related_name=kwargs.pop('related_name', None),
- filter_interface=kwargs.pop('filter_interface', None),
limit_choices_to=kwargs.pop('limit_choices_to', None),
symmetrical=kwargs.pop('symmetrical', True))
self.db_table = kwargs.pop('db_table', None)
@@ -757,11 +756,10 @@
class ManyToManyRel(object):
def __init__(self, to, num_in_admin=0, related_name=None,
- filter_interface=None, limit_choices_to=None, symmetrical=True):
+ limit_choices_to=None, symmetrical=True):
self.to = to
self.num_in_admin = num_in_admin
self.related_name = related_name
- self.filter_interface = filter_interface
if limit_choices_to is None:
limit_choices_to = {}
self.limit_choices_to = limit_choices_to
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/django-updates?hl=en
-~----------~----~----~----~------~----~------~--~---