summaryrefslogtreecommitdiff
path: root/tests/admin_views/customadmin.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/admin_views/customadmin.py')
-rw-r--r--tests/admin_views/customadmin.py59
1 files changed, 59 insertions, 0 deletions
diff --git a/tests/admin_views/customadmin.py b/tests/admin_views/customadmin.py
new file mode 100644
index 0000000000..d69d690af0
--- /dev/null
+++ b/tests/admin_views/customadmin.py
@@ -0,0 +1,59 @@
+"""
+A second, custom AdminSite -- see tests.CustomAdminSiteTests.
+"""
+from __future__ import absolute_import
+
+from django.conf.urls import patterns
+from django.contrib import admin
+from django.http import HttpResponse
+from django.contrib.auth.models import User
+from django.contrib.auth.admin import UserAdmin
+
+from . import models, forms, admin as base_admin
+
+
+class Admin2(admin.AdminSite):
+ login_form = forms.CustomAdminAuthenticationForm
+ login_template = 'custom_admin/login.html'
+ logout_template = 'custom_admin/logout.html'
+ index_template = ['custom_admin/index.html'] # a list, to test fix for #18697
+ password_change_template = 'custom_admin/password_change_form.html'
+ password_change_done_template = 'custom_admin/password_change_done.html'
+
+ # A custom index view.
+ def index(self, request, extra_context=None):
+ return super(Admin2, self).index(request, {'foo': '*bar*'})
+
+ def get_urls(self):
+ return patterns('',
+ (r'^my_view/$', self.admin_view(self.my_view)),
+ ) + super(Admin2, self).get_urls()
+
+ def my_view(self, request):
+ return HttpResponse("Django is a magical pony!")
+
+
+class UserLimitedAdmin(UserAdmin):
+ # used for testing password change on a user not in queryset
+ def queryset(self, request):
+ qs = super(UserLimitedAdmin, self).queryset(request)
+ return qs.filter(is_superuser=False)
+
+
+class CustomPwdTemplateUserAdmin(UserAdmin):
+ change_user_password_template = ['admin/auth/user/change_password.html'] # a list, to test fix for #18697
+
+
+site = Admin2(name="admin2")
+
+site.register(models.Article, base_admin.ArticleAdmin)
+site.register(models.Section, inlines=[base_admin.ArticleInline])
+site.register(models.Thing, base_admin.ThingAdmin)
+site.register(models.Fabric, base_admin.FabricAdmin)
+site.register(models.ChapterXtra1, base_admin.ChapterXtra1Admin)
+site.register(User, UserLimitedAdmin)
+site.register(models.UndeletableObject, base_admin.UndeletableObjectAdmin)
+site.register(models.Simple, base_admin.AttributeErrorRaisingAdmin)
+
+simple_site = Admin2(name='admin4')
+simple_site.register(User, CustomPwdTemplateUserAdmin)