From 651082267956cef3bf3dbd48c5314046c14ca01c Mon Sep 17 00:00:00 2001 From: Joseph Kocherhans Date: Tue, 23 Feb 2010 17:26:20 +0000 Subject: [1.1.X] Fixed #12561. InlineAdmin now respects can_delete=False. Backport of [12533] from trunk. git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.1.X@12534 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- tests/regressiontests/generic_inline_admin/models.py | 12 ++++++++++++ tests/regressiontests/generic_inline_admin/tests.py | 11 ++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) (limited to 'tests/regressiontests/generic_inline_admin') diff --git a/tests/regressiontests/generic_inline_admin/models.py b/tests/regressiontests/generic_inline_admin/models.py index 9f1bbadd3e..472fff9cb6 100644 --- a/tests/regressiontests/generic_inline_admin/models.py +++ b/tests/regressiontests/generic_inline_admin/models.py @@ -72,3 +72,15 @@ class MediaExcludeInline(generic.GenericTabularInline): admin.site.register(EpisodeExclude, inlines=[MediaExcludeInline]) +# +# Generic inline with can_delete=False +# + +class EpisodePermanent(Episode): + pass + +class MediaPermanentInline(generic.GenericTabularInline): + model = Media + can_delete = False + +admin.site.register(EpisodePermanent, inlines=[MediaPermanentInline]) diff --git a/tests/regressiontests/generic_inline_admin/tests.py b/tests/regressiontests/generic_inline_admin/tests.py index 75f3e4aaae..9b3e12d137 100644 --- a/tests/regressiontests/generic_inline_admin/tests.py +++ b/tests/regressiontests/generic_inline_admin/tests.py @@ -5,7 +5,8 @@ from django.conf import settings from django.contrib.contenttypes.generic import generic_inlineformset_factory # local test models -from models import Episode, EpisodeExtra, EpisodeMaxNum, EpisodeExclude, Media +from models import Episode, EpisodeExtra, EpisodeMaxNum, EpisodeExclude, \ + Media, EpisodePermanent, MediaPermanentInline class GenericAdminViewTest(TestCase): fixtures = ['users.xml'] @@ -177,3 +178,11 @@ class GenericInlineAdminParametersTest(TestCase): response = self.client.get('/generic_inline_admin/admin/generic_inline_admin/episodeexclude/%s/' % e.pk) formset = response.context['inline_admin_formsets'][0].formset self.failIf('url' in formset.forms[0], 'The formset has excluded "url" field.') + +class NoInlineDeletionTest(TestCase): + def test_no_deletion(self): + fake_site = object() + inline = MediaPermanentInline(EpisodePermanent, fake_site) + fake_request = object() + formset = inline.get_formset(fake_request) + self.assertFalse(formset.can_delete) -- cgit v1.3