Changeset 4458
- Timestamp:
- 02/02/07 14:37:10 (2 years ago)
- Files:
-
- django/branches/newforms-admin/django/contrib/admin/options.py (modified) (3 diffs)
- django/branches/newforms-admin/django/contrib/auth/models.py (modified) (4 diffs)
- django/branches/newforms-admin/django/db/models/fields/generic.py (modified) (1 diff)
- django/branches/newforms-admin/django/db/models/fields/__init__.py (modified) (1 diff)
- django/branches/newforms-admin/django/db/models/fields/related.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/branches/newforms-admin/django/contrib/admin/options.py
r4446 r4458 112 112 raw_id_fields = () 113 113 prepopulated_fields = {} 114 filter_vertical = () 115 filter_horizontal = () 114 116 115 117 def __init__(self, model): … … 156 158 if self.js: 157 159 js.extend(self.js) 158 for f in self.opts.many_to_many: 159 if f.rel.filter_interface: 160 js.extend(['js/SelectBox.js' , 'js/SelectFilter2.js']) 161 break 160 if self.filter_vertical or self.filter_horizontal: 161 js.extend(['js/SelectBox.js' , 'js/SelectFilter2.js']) 162 162 for fs in fieldsets: 163 163 if 'collapse' in fs.classes: … … 206 206 If kwargs are given, they're passed to the form Field's constructor. 207 207 """ 208 # For filter_interface ManyToManyFields, use a special Widget.209 if isinstance(db_field, models.ManyToManyField) and db_field. rel.filter_interface:210 kwargs['widget'] = widgets.FilteredSelectMultiple(db_field.verbose_name, db_field.rel.filter_interface-1)208 # For ManyToManyFields with a filter interface, use a special Widget. 209 if isinstance(db_field, models.ManyToManyField) and db_field.name in (self.filter_vertical + self.filter_horizontal): 210 kwargs['widget'] = widgets.FilteredSelectMultiple(db_field.verbose_name, (db_field.name in self.filter_vertical)) 211 211 return db_field.formfield(**kwargs) 212 212 django/branches/newforms-admin/django/contrib/auth/models.py
r4266 r4458 56 56 """ 57 57 name = models.CharField(_('name'), maxlength=80, unique=True) 58 permissions = models.ManyToManyField(Permission, verbose_name=_('permissions'), blank=True , filter_interface=models.HORIZONTAL)58 permissions = models.ManyToManyField(Permission, verbose_name=_('permissions'), blank=True) 59 59 class Meta: 60 60 verbose_name = _('group') … … 63 63 class Admin: 64 64 search_fields = ('name',) 65 filter_horizontal = ('permissions',) 65 66 66 67 def __str__(self): … … 100 101 groups = models.ManyToManyField(Group, verbose_name=_('groups'), blank=True, 101 102 help_text=_("In addition to the permissions manually assigned, this user will also get all permissions granted to each group he/she is in.")) 102 user_permissions = models.ManyToManyField(Permission, verbose_name=_('user permissions'), blank=True , filter_interface=models.HORIZONTAL)103 user_permissions = models.ManyToManyField(Permission, verbose_name=_('user permissions'), blank=True) 103 104 objects = UserManager() 104 105 class Meta: … … 117 118 list_filter = ('is_staff', 'is_superuser') 118 119 search_fields = ('username', 'first_name', 'last_name', 'email') 120 filter_horizontal = ('user_permissions',) 119 121 120 122 def __str__(self): django/branches/newforms-admin/django/db/models/fields/generic.py
r4430 r4458 250 250 self.num_in_admin = 0 251 251 self.related_name = related_name 252 self.filter_interface = None253 252 self.limit_choices_to = limit_choices_to or {} 254 253 self.edit_inline = False django/branches/newforms-admin/django/db/models/fields/__init__.py
r4446 r4458 15 15 pass 16 16 17 # Values for filter_interface.18 17 HORIZONTAL, VERTICAL = 1, 2 19 18 django/branches/newforms-admin/django/db/models/fields/related.py
r4450 r4458 617 617 num_in_admin=kwargs.pop('num_in_admin', 0), 618 618 related_name=kwargs.pop('related_name', None), 619 filter_interface=kwargs.pop('filter_interface', None),620 619 limit_choices_to=kwargs.pop('limit_choices_to', None), 621 620 symmetrical=kwargs.pop('symmetrical', True)) … … 758 757 class ManyToManyRel(object): 759 758 def __init__(self, to, num_in_admin=0, related_name=None, 760 filter_interface=None,limit_choices_to=None, symmetrical=True):759 limit_choices_to=None, symmetrical=True): 761 760 self.to = to 762 761 self.num_in_admin = num_in_admin 763 762 self.related_name = related_name 764 self.filter_interface = filter_interface765 763 if limit_choices_to is None: 766 764 limit_choices_to = {}
