Django

Code

Changeset 4458

Show
Ignore:
Timestamp:
02/02/07 14:37:10 (2 years ago)
Author:
adrian
Message:

newforms-admin: Backwards-incompatible change: Removed 'filter_interface' option on ManyToManyFields?, in favor of 'filter_vertical' and 'filter_horizontal' options on 'class Admin'

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/branches/newforms-admin/django/contrib/admin/options.py

    r4446 r4458  
    112112    raw_id_fields = () 
    113113    prepopulated_fields = {} 
     114    filter_vertical = () 
     115    filter_horizontal = () 
    114116 
    115117    def __init__(self, model): 
     
    156158        if self.js: 
    157159            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']) 
    162162        for fs in fieldsets: 
    163163            if 'collapse' in fs.classes: 
     
    206206        If kwargs are given, they're passed to the form Field's constructor. 
    207207        """ 
    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)
    211211            return db_field.formfield(**kwargs) 
    212212 
  • django/branches/newforms-admin/django/contrib/auth/models.py

    r4266 r4458  
    5656    """ 
    5757    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
    5959    class Meta: 
    6060        verbose_name = _('group') 
     
    6363    class Admin: 
    6464        search_fields = ('name',) 
     65        filter_horizontal = ('permissions',) 
    6566 
    6667    def __str__(self): 
     
    100101    groups = models.ManyToManyField(Group, verbose_name=_('groups'), blank=True, 
    101102        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
    103104    objects = UserManager() 
    104105    class Meta: 
     
    117118        list_filter = ('is_staff', 'is_superuser') 
    118119        search_fields = ('username', 'first_name', 'last_name', 'email') 
     120        filter_horizontal = ('user_permissions',) 
    119121 
    120122    def __str__(self): 
  • django/branches/newforms-admin/django/db/models/fields/generic.py

    r4430 r4458  
    250250        self.num_in_admin = 0 
    251251        self.related_name = related_name 
    252         self.filter_interface = None 
    253252        self.limit_choices_to = limit_choices_to or {} 
    254253        self.edit_inline = False 
  • django/branches/newforms-admin/django/db/models/fields/__init__.py

    r4446 r4458  
    1515    pass 
    1616 
    17 # Values for filter_interface. 
    1817HORIZONTAL, VERTICAL = 1, 2 
    1918 
  • django/branches/newforms-admin/django/db/models/fields/related.py

    r4450 r4458  
    617617            num_in_admin=kwargs.pop('num_in_admin', 0), 
    618618            related_name=kwargs.pop('related_name', None), 
    619             filter_interface=kwargs.pop('filter_interface', None), 
    620619            limit_choices_to=kwargs.pop('limit_choices_to', None), 
    621620            symmetrical=kwargs.pop('symmetrical', True)) 
     
    758757class ManyToManyRel(object): 
    759758    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): 
    761760        self.to = to 
    762761        self.num_in_admin = num_in_admin 
    763762        self.related_name = related_name 
    764         self.filter_interface = filter_interface 
    765763        if limit_choices_to is None: 
    766764            limit_choices_to = {}