diff options
| author | Jacob Kaplan-Moss <jacob@jacobian.org> | 2009-04-06 20:23:33 +0000 |
|---|---|---|
| committer | Jacob Kaplan-Moss <jacob@jacobian.org> | 2009-04-06 20:23:33 +0000 |
| commit | bb15cee58a43eeb0d060f8a31f9078b3406f195a (patch) | |
| tree | 7c02dd3d09d32728c54e26374a86bf4f09233968 /tests/regressiontests/admin_views/models.py | |
| parent | d0c897d6605a95c3e7826ee7f01ef20979977ebb (diff) | |
Made a bunch of improvements to admin actions. Be warned: this includes one minor but BACKWARDS-INCOMPATIBLE change.
These changes are:
* BACKWARDS-INCOMPATIBLE CHANGE: action functions and action methods now share the same signature: `(modeladmin, request, queryset)`. Actions defined as methods stay the same, but if you've defined an action as a standalone function you'll now need to add that first `modeladmin` argument.
* The delete selected action is now a standalone function registered site-wide; this makes disabling it easy.
* Fixed #10596: there are now official, documented `AdminSite` APIs for dealing with actions, including a method to disable global actions. You can still re-enable globally-disabled actions on a case-by-case basis.
* Fixed #10595: you can now disable actions for a particular `ModelAdmin` by setting `actions` to `None`.
* Fixed #10734: actions are now sorted (by name).
* Fixed #10618: the action is now taken from the form whose "submit" button you clicked, not arbitrarily the last form on the page.
* All of the above is documented and tested.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@10408 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests/regressiontests/admin_views/models.py')
| -rw-r--r-- | tests/regressiontests/admin_views/models.py | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/tests/regressiontests/admin_views/models.py b/tests/regressiontests/admin_views/models.py index 74fc7ecf78..75b4ad2c87 100644 --- a/tests/regressiontests/admin_views/models.py +++ b/tests/regressiontests/admin_views/models.py @@ -223,7 +223,7 @@ class Subscriber(models.Model): return "%s (%s)" % (self.name, self.email) class SubscriberAdmin(admin.ModelAdmin): - actions = ['delete_selected', 'mail_admin'] + actions = ['mail_admin'] def mail_admin(self, request, selected): EmailMessage( @@ -236,7 +236,10 @@ class SubscriberAdmin(admin.ModelAdmin): class ExternalSubscriber(Subscriber): pass -def external_mail(request, selected): +class OldSubscriber(Subscriber): + pass + +def external_mail(modeladmin, request, selected): EmailMessage( 'Greetings from a function action', 'This is the test email from a function action', @@ -244,7 +247,7 @@ def external_mail(request, selected): ['to@example.com'] ).send() -def redirect_to(request, selected): +def redirect_to(modeladmin, request, selected): from django.http import HttpResponseRedirect return HttpResponseRedirect('/some-where-else/') @@ -285,6 +288,9 @@ class EmptyModelAdmin(admin.ModelAdmin): def queryset(self, request): return super(EmptyModelAdmin, self).queryset(request).filter(pk__gt=1) +class OldSubscriberAdmin(admin.ModelAdmin): + actions = None + admin.site.register(Article, ArticleAdmin) admin.site.register(CustomArticle, CustomArticleAdmin) admin.site.register(Section, save_as=True, inlines=[ArticleInline]) @@ -295,6 +301,7 @@ admin.site.register(Person, PersonAdmin) admin.site.register(Persona, PersonaAdmin) admin.site.register(Subscriber, SubscriberAdmin) admin.site.register(ExternalSubscriber, ExternalSubscriberAdmin) +admin.site.register(OldSubscriber, OldSubscriberAdmin) admin.site.register(Podcast, PodcastAdmin) admin.site.register(Parent, ParentAdmin) admin.site.register(EmptyModel, EmptyModelAdmin) |
