summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVasiliy Bolshakov <va.bolshakov@gmail.com>2017-12-01 03:19:02 +0700
committerTim Graham <timograham@gmail.com>2017-11-30 20:15:28 -0500
commit03974d81220ffd237754a82c77913799dd5909a4 (patch)
treeb04b71aee89fd4d8f3620248adaa5209dcaf7328
parente50add6ca1605dcc06c8c5a5770342779a4d5124 (diff)
Fixed #28866 -- Made InlineAdminFormSet include InlineModelAdmin's Media before its formset's Media.
This provides better backwards compatibility following refs #28377.
-rw-r--r--django/contrib/admin/helpers.py2
-rw-r--r--tests/admin_inlines/admin.py9
-rw-r--r--tests/admin_inlines/tests.py10
3 files changed, 20 insertions, 1 deletions
diff --git a/django/contrib/admin/helpers.py b/django/contrib/admin/helpers.py
index 2b47ed07fa..58e92c9689 100644
--- a/django/contrib/admin/helpers.py
+++ b/django/contrib/admin/helpers.py
@@ -304,7 +304,7 @@ class InlineAdminFormSet:
@property
def media(self):
- media = self.formset.media + self.opts.media
+ media = self.opts.media + self.formset.media
for fs in self:
media = media + fs.media
return media
diff --git a/tests/admin_inlines/admin.py b/tests/admin_inlines/admin.py
index 4a34d65d83..1370484313 100644
--- a/tests/admin_inlines/admin.py
+++ b/tests/admin_inlines/admin.py
@@ -1,5 +1,6 @@
from django import forms
from django.contrib import admin
+from django.db import models
from .models import (
Author, BinaryTree, CapoFamiglia, Chapter, ChildModel1, ChildModel2,
@@ -73,8 +74,16 @@ class InnerInline2(admin.StackedInline):
js = ('my_awesome_inline_scripts.js',)
+class CustomNumberWidget(forms.NumberInput):
+ class Media:
+ js = ('custom_number.js',)
+
+
class InnerInline3(admin.StackedInline):
model = Inner3
+ formfield_overrides = {
+ models.IntegerField: {'widget': CustomNumberWidget},
+ }
class Media:
js = ('my_awesome_inline_scripts.js',)
diff --git a/tests/admin_inlines/tests.py b/tests/admin_inlines/tests.py
index 13b179fc15..67ffa7648f 100644
--- a/tests/admin_inlines/tests.py
+++ b/tests/admin_inlines/tests.py
@@ -453,6 +453,16 @@ class TestInlineMedia(TestDataMixin, TestCase):
Inner3(dummy=42, holder=holder).save()
change_url = reverse('admin:admin_inlines_holder3_change', args=(holder.id,))
response = self.client.get(change_url)
+ self.assertEqual(
+ response.context['inline_admin_formsets'][0].media._js,
+ [
+ 'admin/js/vendor/jquery/jquery.min.js',
+ 'admin/js/jquery.init.js',
+ 'admin/js/inlines.min.js',
+ 'my_awesome_inline_scripts.js',
+ 'custom_number.js',
+ ]
+ )
self.assertContains(response, 'my_awesome_inline_scripts.js')
def test_all_inline_media(self):