summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Bennett <ubernostrum@gmail.com>2010-03-03 08:03:47 +0000
committerJames Bennett <ubernostrum@gmail.com>2010-03-03 08:03:47 +0000
commit1d12aa2cfe5bf8e9fc36baefb1f9e1bedb9d5b93 (patch)
tree560b8295f4825214c4093d33beb2c8b55629c817
parentc6e662cd6e84203ca0a5328035d72c6c83f9bae9 (diff)
[1.1.X] Fixed #12879: Declaring the same JS file multiple times in a single Media instance now only includes that file once. Backport of [12663] from trunk.
git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.1.X@12664 bcc190cf-cafb-0310-a4f2-bffc1f526a37
-rw-r--r--django/forms/widgets.py4
-rw-r--r--tests/regressiontests/forms/media.py12
2 files changed, 15 insertions, 1 deletions
diff --git a/django/forms/widgets.py b/django/forms/widgets.py
index 36018979b8..ffab039829 100644
--- a/django/forms/widgets.py
+++ b/django/forms/widgets.py
@@ -80,7 +80,9 @@ class Media(StrAndUnicode):
def add_js(self, data):
if data:
- self._js.extend([path for path in data if path not in self._js])
+ for path in data:
+ if path not in self._js:
+ self._js.append(path)
def add_css(self, data):
if data:
diff --git a/tests/regressiontests/forms/media.py b/tests/regressiontests/forms/media.py
index fc1b412bcf..f47875db34 100644
--- a/tests/regressiontests/forms/media.py
+++ b/tests/regressiontests/forms/media.py
@@ -112,6 +112,18 @@ media_tests = r"""
<script type="text/javascript" src="http://media.other.com/path/to/js2"></script>
<script type="text/javascript" src="https://secure.other.com/path/to/js3"></script>
+# Regression check for #12879: specifying the same JS file multiple
+# times in a single Media instance should result in that file only
+# being included once.
+>>> class MyWidget4(TextInput):
+... class Media:
+... js = ('/path/to/js1', '/path/to/js1')
+
+>>> w4 = MyWidget4()
+>>> print w4.media
+<script type="text/javascript" src="/path/to/js1"></script>
+
+
###############################################################
# Property-based media definitions
###############################################################