diff options
| author | Simon Willison <simon@simonwillison.net> | 2008-06-12 20:58:56 +0000 |
|---|---|---|
| committer | Simon Willison <simon@simonwillison.net> | 2008-06-12 20:58:56 +0000 |
| commit | a33bd6b594b67126b70235a1bc1ab2ba95805d5e (patch) | |
| tree | a9702f9768cf3f3ffedaf3f5dc6ff5995b251590 /tests | |
| parent | f914b0a71b8059166208175f994f61e4984eab1d (diff) | |
newforms-admin: Added ability to pass extra_context argument to ModelAdmin's add_view, change_view, changelist_view, delete_view and history_view methods. This makes it easier to customise those pages; you can over-ride the methods in your subclass and call the super method with extra_context to feed additional variables to your custom admin templates.
git-svn-id: http://code.djangoproject.com/svn/django/branches/newforms-admin@7627 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/regressiontests/admin_views/models.py | 20 | ||||
| -rw-r--r-- | tests/regressiontests/admin_views/tests.py | 7 | ||||
| -rw-r--r-- | tests/regressiontests/admin_views/urls.py | 2 | ||||
| -rw-r--r-- | tests/templates/admin/admin_views/customarticle/change_list.html | 7 |
4 files changed, 33 insertions, 3 deletions
diff --git a/tests/regressiontests/admin_views/models.py b/tests/regressiontests/admin_views/models.py index 8df0a34f2d..27d1027b1f 100644 --- a/tests/regressiontests/admin_views/models.py +++ b/tests/regressiontests/admin_views/models.py @@ -8,10 +8,26 @@ class Article(models.Model): """ content = models.TextField() date = models.DateTimeField() - class ArticleAdmin(admin.ModelAdmin): list_display = ('content', 'date') list_filter = ('date',) + + def changelist_view(self, request): + "Test that extra_context works" + return super(ArticleAdmin, self).changelist_view(request, extra_context={ + 'extra_var': 'Hello!' + }) + +class CustomArticle(Article): + pass + +class CustomArticleAdmin(admin.ModelAdmin): + def changelist_view(self, request): + "Test that extra_context works" + return super(CustomArticleAdmin, self).changelist_view(request, extra_context={ + 'extra_var': 'Hello!' + }) -admin.site.register(Article, ArticleAdmin)
\ No newline at end of file +admin.site.register(Article, ArticleAdmin) +admin.site.register(CustomArticle, CustomArticleAdmin) diff --git a/tests/regressiontests/admin_views/tests.py b/tests/regressiontests/admin_views/tests.py index cfe73f184d..30161299cc 100644 --- a/tests/regressiontests/admin_views/tests.py +++ b/tests/regressiontests/admin_views/tests.py @@ -182,6 +182,13 @@ class AdminViewPermissionsTest(TestCase): self.assertRedirects(post, '/test_admin/admin/admin_views/article/') self.failUnlessEqual(Article.objects.get(pk=1).content, '<p>edited article</p>') self.client.get('/test_admin/admin/logout/') + + def testCustomChangelistView(self): + self.client.get('/test_admin/admin/') + self.client.post('/test_admin/admin/', self.super_login) + request = self.client.get('/test_admin/admin/admin_views/customarticle/') + self.failUnlessEqual(request.status_code, 200) + self.assert_("var hello = 'Hello!';" in request.content) def testDeleteView(self): """Delete view should restrict access and actually delete items.""" diff --git a/tests/regressiontests/admin_views/urls.py b/tests/regressiontests/admin_views/urls.py index 13ccf1325b..e556812a45 100644 --- a/tests/regressiontests/admin_views/urls.py +++ b/tests/regressiontests/admin_views/urls.py @@ -4,4 +4,4 @@ from django.contrib import admin urlpatterns = patterns('', (r'^admin/doc/', include('django.contrib.admindocs.urls')), (r'^admin/(.*)', admin.site.root), -)
\ No newline at end of file +) diff --git a/tests/templates/admin/admin_views/customarticle/change_list.html b/tests/templates/admin/admin_views/customarticle/change_list.html new file mode 100644 index 0000000000..eebc9c7e30 --- /dev/null +++ b/tests/templates/admin/admin_views/customarticle/change_list.html @@ -0,0 +1,7 @@ +{% extends "admin/change_list.html" %} + +{% block extrahead %} +<script type="text/javascript"> +var hello = '{{ extra_var }}'; +</script> +{% endblock %} |
