From 6edcd11aedc1dca4d67fdbe7478d40406dc88730 Mon Sep 17 00:00:00 2001 From: James Bennett Date: Wed, 3 Mar 2010 08:17:51 +0000 Subject: [PATCH] Expanded the fix in [12663] to cover CSS declarations, which were also affected by the bug. Refs #12879. git-svn-id: http://code.djangoproject.com/svn/django/trunk@12665 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/forms/widgets.py | 4 +++- tests/regressiontests/forms/media.py | 8 +++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/django/forms/widgets.py b/django/forms/widgets.py index 482c718118..81db2a24f3 100644 --- a/django/forms/widgets.py +++ b/django/forms/widgets.py @@ -82,7 +82,9 @@ class Media(StrAndUnicode): def add_css(self, data): if data: for medium, paths in data.items(): - self._css.setdefault(medium, []).extend([path for path in paths if path not in self._css[medium]]) + for path in paths: + if not self._css.get(medium) or path not in self._css[medium]: + self._css.setdefault(medium, []).append(path) def __add__(self, other): combined = Media() diff --git a/tests/regressiontests/forms/media.py b/tests/regressiontests/forms/media.py index f47875db34..d715fb4d80 100644 --- a/tests/regressiontests/forms/media.py +++ b/tests/regressiontests/forms/media.py @@ -112,15 +112,17 @@ media_tests = r""" -# 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. +# Regression check for #12879: specifying the same CSS or JS file +# multiple times in a single Media instance should result in that file +# only being included once. >>> class MyWidget4(TextInput): ... class Media: +... css = {'all': ('/path/to/css1', '/path/to/css1')} ... js = ('/path/to/js1', '/path/to/js1') >>> w4 = MyWidget4() >>> print w4.media +