summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorSimon Willison <simon@simonwillison.net>2008-06-12 20:58:56 +0000
committerSimon Willison <simon@simonwillison.net>2008-06-12 20:58:56 +0000
commita33bd6b594b67126b70235a1bc1ab2ba95805d5e (patch)
treea9702f9768cf3f3ffedaf3f5dc6ff5995b251590 /tests
parentf914b0a71b8059166208175f994f61e4984eab1d (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.py20
-rw-r--r--tests/regressiontests/admin_views/tests.py7
-rw-r--r--tests/regressiontests/admin_views/urls.py2
-rw-r--r--tests/templates/admin/admin_views/customarticle/change_list.html7
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 %}