Changeset 6322
- Timestamp:
- 09/15/07 14:58:54 (1 year ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/branches/newforms-admin/django/contrib/admin/options.py
r6321 r6322 628 628 deleted_objects = [u'%s: <a href="../../%s/">%s</a>' % (force_unicode(capfirst(opts.verbose_name)), object_id, escape(str(obj))), []] 629 629 perms_needed = sets.Set() 630 get_deleted_objects(deleted_objects, perms_needed, request.user, obj, opts, 1 , self.admin_site)630 get_deleted_objects(deleted_objects, perms_needed, request.user, obj, opts, 1) 631 631 632 632 if request.POST: # The user has already confirmed the deletion. django/branches/newforms-admin/django/contrib/admin/util.py
r6321 r6322 11 11 current.append(val) 12 12 13 def get_deleted_objects(deleted_objects, perms_needed, user, obj, opts, current_depth , admin_site):13 def get_deleted_objects(deleted_objects, perms_needed, user, obj, opts, current_depth): 14 14 "Helper function that recursively populates deleted_objects." 15 15 nh = _nest_help # Bind to local variable for performance … … 18 18 opts_seen = [] 19 19 for related in opts.get_all_related_objects(): 20 has_admin = related.__class__ in admin_site._registry21 20 if related.opts in opts_seen: 22 21 continue … … 29 28 pass 30 29 else: 31 if has_admin:30 if related.opts.admin: 32 31 p = '%s.%s' % (related.opts.app_label, related.opts.get_delete_permission()) 33 32 if not user.has_perm(p): … … 35 34 # We don't care about populating deleted_objects now. 36 35 continue 37 if related.field.rel.edit_inline or not has_admin:36 if related.field.rel.edit_inline or not related.opts.admin: 38 37 # Don't display link to edit, because it either has no 39 38 # admin or is edited inline. … … 44 43 (force_unicode(capfirst(related.opts.verbose_name)), related.opts.app_label, related.opts.object_name.lower(), 45 44 sub_obj._get_pk_val(), sub_obj), []]) 46 get_deleted_objects(deleted_objects, perms_needed, user, sub_obj, related.opts, current_depth+2 , admin_site)45 get_deleted_objects(deleted_objects, perms_needed, user, sub_obj, related.opts, current_depth+2) 47 46 else: 48 47 has_related_objs = False 49 48 for sub_obj in getattr(obj, rel_opts_name).all(): 50 49 has_related_objs = True 51 if related.field.rel.edit_inline or not has_admin:50 if related.field.rel.edit_inline or not related.opts.admin: 52 51 # Don't display link to edit, because it either has no 53 52 # admin or is edited inline. … … 57 56 nh(deleted_objects, current_depth, [u'%s: <a href="../../../../%s/%s/%s/">%s</a>' % \ 58 57 (force_unicode(capfirst(related.opts.verbose_name)), related.opts.app_label, related.opts.object_name.lower(), sub_obj._get_pk_val(), escape(sub_obj)), []]) 59 get_deleted_objects(deleted_objects, perms_needed, user, sub_obj, related.opts, current_depth+2 , admin_site)58 get_deleted_objects(deleted_objects, perms_needed, user, sub_obj, related.opts, current_depth+2) 60 59 # If there were related objects, and the user doesn't have 61 60 # permission to delete them, add the missing perm to perms_needed. 62 if has_admin and has_related_objs:61 if related.opts.admin and has_related_objs: 63 62 p = '%s.%s' % (related.opts.app_label, related.opts.get_delete_permission()) 64 63 if not user.has_perm(p): 65 64 perms_needed.add(related.opts.verbose_name) 66 65 for related in opts.get_all_related_many_to_many_objects(): 67 has_admin = related.__class__ in admin_site._registry68 66 if related.opts in opts_seen: 69 67 continue … … 80 78 if has_related_objs: 81 79 for sub_obj in rel_objs.all(): 82 if related.field.rel.edit_inline or not has_admin:80 if related.field.rel.edit_inline or not related.opts.admin: 83 81 # Don't display link to edit, because it either has no 84 82 # admin or is edited inline. … … 93 91 # If there were related objects, and the user doesn't have 94 92 # permission to change them, add the missing perm to perms_needed. 95 if has_admin and has_related_objs:93 if related.opts.admin and has_related_objs: 96 94 p = u'%s.%s' % (related.opts.app_label, related.opts.get_change_permission()) 97 95 if not user.has_perm(p): django/branches/newforms-admin/django/contrib/admin/widgets.py
r6321 r6322 99 99 def render(self, name, value, attrs=None): 100 100 attrs['class'] = 'vManyToManyRawIdAdminField' 101 if value: 102 value = ','.join( [str(v) for v in value])101 if value: 102 value = ','.join(value) 103 103 else: 104 104 value = ""
