Author: adrian
Date: 2007-01-14 14:23:34 -0600 (Sun, 14 Jan 2007)
New Revision: 4321

Modified:
  django/branches/newforms-admin/django/contrib/admin/views/main.py
Log:
newforms-admin: Implemented ModelAdminView.delete_view()

Modified: django/branches/newforms-admin/django/contrib/admin/views/main.py
===================================================================
--- django/branches/newforms-admin/django/contrib/admin/views/main.py   
2007-01-14 20:19:32 UTC (rev 4320)
+++ django/branches/newforms-admin/django/contrib/admin/views/main.py   
2007-01-14 20:23:34 UTC (rev 4321)
@@ -13,6 +13,7 @@
from django.utils.html import escape
from django.utils.text import capfirst, get_text_list
import operator
+import sets

from django.contrib.admin.models import LogEntry, ADDITION, CHANGE, DELETION
if not LogEntry._meta.installed:
@@ -167,8 +168,38 @@

    def delete_view(self, request, object_id):
        "The 'delete' admin view for this model."
-        raise NotImplementedError('Delete view with object %r' % object_id)
+        opts = self.model._meta
+        app_label = opts.app_label
+        if not request.user.has_perm(app_label + '.' + 
opts.get_delete_permission()):
+            raise PermissionDenied
+        obj = get_object_or_404(self.model, pk=object_id)

+        # Populate deleted_objects, a data structure of all related objects 
that
+        # will also be deleted.
+        deleted_objects = ['%s: <a href="../../%s/">%s</a>' % 
(capfirst(opts.verbose_name), object_id, escape(str(obj))), []]
+        perms_needed = sets.Set()
+        _get_deleted_objects(deleted_objects, perms_needed, request.user, obj, 
opts, 1)
+
+        if request.POST: # The user has already confirmed the deletion.
+            if perms_needed:
+                raise PermissionDenied
+            obj_display = str(obj)
+            obj.delete()
+            LogEntry.objects.log_action(request.user.id, 
ContentType.objects.get_for_model(self.model).id, object_id, obj_display, 
DELETION)
+            request.user.message_set.create(message=_('The %(name)s "%(obj)s" 
was deleted successfully.') % {'name': opts.verbose_name, 'obj': obj_display})
+            return HttpResponseRedirect("../../")
+        extra_context = {
+            "title": _("Are you sure?"),
+            "object_name": opts.verbose_name,
+            "object": obj,
+            "deleted_objects": deleted_objects,
+            "perms_lacking": perms_needed,
+            "opts": opts,
+        }
+        return render_to_response(["admin/%s/%s/delete_confirmation.html" % 
(app_label, opts.object_name.lower() ),
+                                "admin/%s/delete_confirmation.html" % 
app_label ,
+                                "admin/delete_confirmation.html"], 
extra_context, context_instance=template.RequestContext(request))
+
    def history_view(self, request, object_id):
        "The 'history' admin view for this model."
        model = self.model
@@ -570,44 +601,6 @@
            if not user.has_perm(p):
                perms_needed.add(related.opts.verbose_name)

-def delete_stage(request, app_label, model_name, object_id):
-    import sets
-    model = models.get_model(app_label, model_name)
-    object_id = unquote(object_id)
-    if model is None:
-        raise Http404("App %r, model %r, not found" % (app_label, model_name))
-    opts = model._meta
-    if not request.user.has_perm(app_label + '.' + 
opts.get_delete_permission()):
-        raise PermissionDenied
-    obj = get_object_or_404(model, pk=object_id)
-
-    # Populate deleted_objects, a data structure of all related objects that
-    # will also be deleted.
-    deleted_objects = ['%s: <a href="../../%s/">%s</a>' % 
(capfirst(opts.verbose_name), object_id, escape(str(obj))), []]
-    perms_needed = sets.Set()
-    _get_deleted_objects(deleted_objects, perms_needed, request.user, obj, 
opts, 1)
-
-    if request.POST: # The user has already confirmed the deletion.
-        if perms_needed:
-            raise PermissionDenied
-        obj_display = str(obj)
-        obj.delete()
-        LogEntry.objects.log_action(request.user.id, 
ContentType.objects.get_for_model(model).id, object_id, obj_display, DELETION)
-        request.user.message_set.create(message=_('The %(name)s "%(obj)s" was 
deleted successfully.') % {'name': opts.verbose_name, 'obj': obj_display})
-        return HttpResponseRedirect("../../")
-    extra_context = {
-        "title": _("Are you sure?"),
-        "object_name": opts.verbose_name,
-        "object": obj,
-        "deleted_objects": deleted_objects,
-        "perms_lacking": perms_needed,
-        "opts": model._meta,
-    }
-    return render_to_response(["admin/%s/%s/delete_confirmation.html" % 
(app_label, opts.object_name.lower() ),
-                               "admin/%s/delete_confirmation.html" % app_label 
,
-                               "admin/delete_confirmation.html"], 
extra_context, context_instance=template.RequestContext(request))
-delete_stage = staff_member_required(never_cache(delete_stage))
-
class ChangeList(object):
    def __init__(self, request, model):
        self.model = model


--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to