-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- forced standard MIDDLEWARE_CLASSES into tests
- fixed columns labels into show/hide column panel - autoregister/autodiscover
- Loading branch information
Showing
50 changed files
with
1,341 additions
and
244 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Original file line | Diff line number | Diff line change |
---|---|---|---|
@@ -0,0 +1,77 @@ | |||
from django.core.exceptions import PermissionDenied | |||
from django.contrib.admin import helpers | |||
from django.contrib.admin.util import get_deleted_objects, model_ngettext | |||
from django.db import router | |||
from django.template.response import TemplateResponse | |||
from django.utils.encoding import force_unicode | |||
from django.utils.translation import ugettext_lazy, ugettext as _ | |||
|
|||
def delete_selected(modeladmin, request, queryset): | |||
""" | |||
Default action which deletes the selected objects. | |||
This action first displays a confirmation page whichs shows all the | |||
deleteable objects, or, if the user has no permission one of the related | |||
childs (foreignkeys), a "permission denied" message. | |||
Next, it delets all selected objects and redirects back to the change list. | |||
""" | |||
opts = modeladmin.model._meta | |||
app_label = opts.app_label | |||
|
|||
# Check that the user has delete permission for the actual model | |||
if not modeladmin.has_delete_permission(request): | |||
raise PermissionDenied | |||
|
|||
using = router.db_for_write(modeladmin.model) | |||
|
|||
# Populate deletable_objects, a data structure of all related objects that | |||
# will also be deleted. | |||
deletable_objects, perms_needed, protected = get_deleted_objects( | |||
queryset, opts, request.user, modeladmin.admin_site, using) | |||
|
|||
# The user has already confirmed the deletion. | |||
# Do the deletion and return a None to display the change list view again. | |||
if request.POST.get('post'): | |||
if perms_needed: | |||
raise PermissionDenied | |||
n = queryset.count() | |||
if n: | |||
for obj in queryset: | |||
obj_display = force_unicode(obj) | |||
modeladmin.log_deletion(request, obj, obj_display) | |||
queryset.delete() | |||
modeladmin.message_user(request, _("Successfully deleted %(count)d %(items)s.") % { | |||
"count": n, "items": model_ngettext(modeladmin.opts, n) | |||
}) | |||
# Return None to display the change list page again. | |||
return None | |||
|
|||
if len(queryset) == 1: | |||
objects_name = force_unicode(opts.verbose_name) | |||
else: | |||
objects_name = force_unicode(opts.verbose_name_plural) | |||
|
|||
if perms_needed or protected: | |||
title = _("Cannot delete %(name)s") % {"name": objects_name} | |||
else: | |||
title = _("Are you sure?") | |||
|
|||
context = modeladmin.get_context_data(**{ | |||
"title": title, | |||
"objects_name": objects_name, | |||
"deletable_objects": [deletable_objects], | |||
'queryset': queryset, | |||
"perms_lacking": perms_needed, | |||
"protected": protected, | |||
"opts": opts, | |||
"app_label": app_label, | |||
'action_checkbox_name': helpers.ACTION_CHECKBOX_NAME, | |||
}) | |||
# tpls = modeladmin.get_template(request, 'delete_selected_confirmation.html') | |||
# Display the confirmation page | |||
return TemplateResponse(request, | |||
modeladmin.delete_selected_confirmation_template or modeladmin.get_template(request,'delete_selected_confirmation.html') | |||
, context, current_app=modeladmin.admin_site.name) | |||
|
|||
delete_selected.short_description = ugettext_lazy("Delete selected %(verbose_name_plural)s") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Original file line | Diff line number | Diff line change |
---|---|---|---|
@@ -1,10 +1,7 @@ | |||
import django.contrib.admin | from iadmin.api import ITabularInline as TabularInline | ||
import iadmin.api | from iadmin.api import IModelAdmin as ModelAdmin | ||
django.contrib.admin.site = iadmin.api.site | from iadmin.api import IAdminSite as AdminSite | ||
django.contrib.admin.ModelAdmin = iadmin.api.IModelAdmin | |||
django.contrib.admin.TabularInline = iadmin.api.ITabularInline | |||
|
|
||
from django.contrib.admin import site, ModelAdmin, TabularInline | site = AdminSite( 'admin', 'admin') | ||
from iadmin.api import * | from iadmin.api import * | ||
|
|
||
|
Oops, something went wrong.