Loading django/forms/widgets.py +3 −1 Original line number Diff line number Diff line Loading @@ -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() Loading tests/regressiontests/forms/media.py +5 −3 Original line number Diff line number Diff line Loading @@ -112,15 +112,17 @@ 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. # 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 <link href="/path/to/css1" type="text/css" media="all" rel="stylesheet" /> <script type="text/javascript" src="/path/to/js1"></script> Loading Loading
django/forms/widgets.py +3 −1 Original line number Diff line number Diff line Loading @@ -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() Loading
tests/regressiontests/forms/media.py +5 −3 Original line number Diff line number Diff line Loading @@ -112,15 +112,17 @@ 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. # 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 <link href="/path/to/css1" type="text/css" media="all" rel="stylesheet" /> <script type="text/javascript" src="/path/to/js1"></script> Loading