Commit 6a098aa6 authored by Ramiro Morales's avatar Ramiro Morales
Browse files

[1.5.x] Fixed #18697 -- Made values accepted for two customizable admin templates consistent.

Thanks and at cloverfastfood dot com for the report.

b64d3040 from master.
parent b6f67bd5
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -389,9 +389,9 @@ class AdminSite(object):
            'app_list': app_list,
        }
        context.update(extra_context or {})
        return TemplateResponse(request, [
            self.index_template or 'admin/index.html',
        ], context, current_app=self.name)
        return TemplateResponse(request, self.index_template or
                                'admin/index.html', context,
                                current_app=self.name)

    def app_index(self, request, app_label, extra_context=None):
        user = request.user
+3 −3
Original line number Diff line number Diff line
@@ -148,10 +148,10 @@ class UserAdmin(admin.ModelAdmin):
            'save_as': False,
            'show_save': True,
        }
        return TemplateResponse(request, [
        return TemplateResponse(request,
            self.change_user_password_template or
            'admin/auth/user/change_password.html'
        ], context, current_app=self.admin_site.name)
            'admin/auth/user/change_password.html',
            context, current_app=self.admin_site.name)

    def response_add(self, request, obj, **kwargs):
        """
+8 −1
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@ 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'
    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'

@@ -40,6 +40,10 @@ class UserLimitedAdmin(UserAdmin):
        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)
@@ -50,3 +54,6 @@ 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)
+13 −1
Original line number Diff line number Diff line
@@ -770,7 +770,10 @@ class CustomModelAdminTest(AdminViewBasicTest):
        self.assertContains(response, 'Hello from a custom logout template')

    def testCustomAdminSiteIndexViewAndTemplate(self):
        try:
            response = self.client.get('/test_admin/admin2/')
        except TypeError:
            self.fail('AdminSite.index_template should accept a list of template paths')
        self.assertIsInstance(response, TemplateResponse)
        self.assertTemplateUsed(response, 'custom_admin/index.html')
        self.assertContains(response, 'Hello from a custom index template *bar*')
@@ -792,6 +795,15 @@ class CustomModelAdminTest(AdminViewBasicTest):
        response = self.client.get('/test_admin/%s/my_view/' % self.urlbit)
        self.assertEqual(response.content, b"Django is a magical pony!")

    def test_pwd_change_custom_template(self):
        self.client.login(username='super', password='secret')
        su = User.objects.get(username='super')
        try:
            response = self.client.get('/test_admin/admin4/auth/user/%s/password/' % su.pk)
        except TypeError:
            self.fail('ModelAdmin.change_user_password_template should accept a list of template paths')
        self.assertEqual(response.status_code, 200)


def get_perm(Model, perm):
    """Return the permission object, for the Model"""
+1 −0
Original line number Diff line number Diff line
@@ -11,4 +11,5 @@ urlpatterns = patterns('',
    (r'^test_admin/admin/', include(admin.site.urls)),
    (r'^test_admin/admin2/', include(customadmin.site.urls)),
    (r'^test_admin/admin3/', include(admin.site.urls), dict(form_url='pony')),
    (r'^test_admin/admin4/', include(customadmin.simple_site.urls)),
)