diff options
| author | James Bennett <ubernostrum@gmail.com> | 2010-03-03 08:01:48 +0000 |
|---|---|---|
| committer | James Bennett <ubernostrum@gmail.com> | 2010-03-03 08:01:48 +0000 |
| commit | 9a82ca0a36798d0ca33353cd933cdbc8da0f677b (patch) | |
| tree | bc4f43e114e8526285d72ade09361c9a24b525a7 | |
| parent | 600aa6679ed98d132fc378dfa205f482a58cceb1 (diff) | |
Fixed #12879: Declaring the same JS file multiple times in a single Media instance now only includes that file once.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@12663 bcc190cf-cafb-0310-a4f2-bffc1f526a37
| -rw-r--r-- | django/forms/widgets.py | 4 | ||||
| -rw-r--r-- | tests/regressiontests/forms/media.py | 12 |
2 files changed, 15 insertions, 1 deletions
diff --git a/django/forms/widgets.py b/django/forms/widgets.py index ee1966b76f..482c718118 100644 --- a/django/forms/widgets.py +++ b/django/forms/widgets.py @@ -75,7 +75,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 ############################################################### |
