Django

Code

Changeset 6321

Show
Ignore:
Timestamp:
09/15/07 14:56:59 (1 year ago)
Author:
jkocherhans
Message:

Fixed a bug in ManyToManyRawIdWidget? where a list of integers needed to be converted to a comma separated string for display.

Files:

Legend:

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

    r6310 r6321  
    628628        deleted_objects = [u'%s: <a href="../../%s/">%s</a>' % (force_unicode(capfirst(opts.verbose_name)), object_id, escape(str(obj))), []] 
    629629        perms_needed = sets.Set() 
    630         get_deleted_objects(deleted_objects, perms_needed, request.user, obj, opts, 1
     630        get_deleted_objects(deleted_objects, perms_needed, request.user, obj, opts, 1, self.admin_site
    631631 
    632632        if request.POST: # The user has already confirmed the deletion. 
  • django/branches/newforms-admin/django/contrib/admin/util.py

    r5997 r6321  
    1111    current.append(val) 
    1212 
    13 def get_deleted_objects(deleted_objects, perms_needed, user, obj, opts, current_depth): 
     13def get_deleted_objects(deleted_objects, perms_needed, user, obj, opts, current_depth, admin_site): 
    1414    "Helper function that recursively populates deleted_objects." 
    1515    nh = _nest_help # Bind to local variable for performance 
     
    1818    opts_seen = [] 
    1919    for related in opts.get_all_related_objects(): 
     20        has_admin = related.__class__ in admin_site._registry 
    2021        if related.opts in opts_seen: 
    2122            continue 
     
    2829                pass 
    2930            else: 
    30                 if related.opts.admin: 
     31                if has_admin: 
    3132                    p = '%s.%s' % (related.opts.app_label, related.opts.get_delete_permission()) 
    3233                    if not user.has_perm(p): 
     
    3435                        # We don't care about populating deleted_objects now. 
    3536                        continue 
    36                 if related.field.rel.edit_inline or not related.opts.admin: 
     37                if related.field.rel.edit_inline or not has_admin: 
    3738                    # Don't display link to edit, because it either has no 
    3839                    # admin or is edited inline. 
     
    4344                        (force_unicode(capfirst(related.opts.verbose_name)), related.opts.app_label, related.opts.object_name.lower(), 
    4445                        sub_obj._get_pk_val(), sub_obj), []]) 
    45                 get_deleted_objects(deleted_objects, perms_needed, user, sub_obj, related.opts, current_depth+2
     46                get_deleted_objects(deleted_objects, perms_needed, user, sub_obj, related.opts, current_depth+2, admin_site
    4647        else: 
    4748            has_related_objs = False 
    4849            for sub_obj in getattr(obj, rel_opts_name).all(): 
    4950                has_related_objs = True 
    50                 if related.field.rel.edit_inline or not related.opts.admin: 
     51                if related.field.rel.edit_inline or not has_admin: 
    5152                    # Don't display link to edit, because it either has no 
    5253                    # admin or is edited inline. 
     
    5657                    nh(deleted_objects, current_depth, [u'%s: <a href="../../../../%s/%s/%s/">%s</a>' % \ 
    5758                        (force_unicode(capfirst(related.opts.verbose_name)), related.opts.app_label, related.opts.object_name.lower(), sub_obj._get_pk_val(), escape(sub_obj)), []]) 
    58                 get_deleted_objects(deleted_objects, perms_needed, user, sub_obj, related.opts, current_depth+2
     59                get_deleted_objects(deleted_objects, perms_needed, user, sub_obj, related.opts, current_depth+2, admin_site
    5960            # If there were related objects, and the user doesn't have 
    6061            # permission to delete them, add the missing perm to perms_needed. 
    61             if related.opts.admin and has_related_objs: 
     62            if has_admin and has_related_objs: 
    6263                p = '%s.%s' % (related.opts.app_label, related.opts.get_delete_permission()) 
    6364                if not user.has_perm(p): 
    6465                    perms_needed.add(related.opts.verbose_name) 
    6566    for related in opts.get_all_related_many_to_many_objects(): 
     67        has_admin = related.__class__ in admin_site._registry 
    6668        if related.opts in opts_seen: 
    6769            continue 
     
    7880        if has_related_objs: 
    7981            for sub_obj in rel_objs.all(): 
    80                 if related.field.rel.edit_inline or not related.opts.admin: 
     82                if related.field.rel.edit_inline or not has_admin: 
    8183                    # Don't display link to edit, because it either has no 
    8284                    # admin or is edited inline. 
     
    9193        # If there were related objects, and the user doesn't have 
    9294        # permission to change them, add the missing perm to perms_needed. 
    93         if related.opts.admin and has_related_objs: 
     95        if has_admin and has_related_objs: 
    9496            p = u'%s.%s' % (related.opts.app_label, related.opts.get_change_permission()) 
    9597            if not user.has_perm(p): 
  • django/branches/newforms-admin/django/contrib/admin/widgets.py

    r6310 r6321  
    9999    def render(self, name, value, attrs=None): 
    100100        attrs['class'] = 'vManyToManyRawIdAdminField' 
    101         if value:  
    102             value = ','.join(value
     101        if value: 
     102            value = ','.join([str(v) for v in value]
    103103        else:  
    104104            value = ""