Commit e92b057e authored by Jaap Roes's avatar Jaap Roes Committed by Tim Graham
Browse files

Fixed #23261 -- Deprecated old style list support for unordered_list filter.

parent 2e7be92b
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -6,11 +6,13 @@ import random as random_module
from decimal import Decimal, InvalidOperation, Context, ROUND_HALF_UP
from functools import wraps
from pprint import pformat
import warnings

from django.template.base import Variable, Library, VariableDoesNotExist
from django.conf import settings
from django.utils import formats
from django.utils.dateformat import format, time_format
from django.utils.deprecation import RemovedInDjango20Warning
from django.utils.encoding import force_text, iri_to_uri
from django.utils.html import (conditional_escape, escapejs,
    escape, urlize as _urlize, linebreaks, strip_tags, avoid_wrapping,
@@ -705,6 +707,11 @@ def unordered_list(value, autoescape=None):
            i += 1
        return '\n'.join(output)
    value, converted = convert_old_style_list(value)
    if converted:
        warnings.warn(
            "The old style syntax in `unordered_list` is deprecated and will "
            "be removed in Django 2.0. Use the the new format instead.",
            RemovedInDjango20Warning)
    return mark_safe(_helper(value))


+2 −0
Original line number Diff line number Diff line
@@ -42,6 +42,8 @@ about each item can often be found in the release notes of two versions prior.

* The ``error_message`` argument of ``django.forms.RegexField`` will be removed.

* The ``unordered_list`` filter will no longer support old style lists.

.. _deprecation-removed-in-1.9:

1.9
+5 −2
Original line number Diff line number Diff line
@@ -2259,8 +2259,11 @@ contains ``['States', ['Kansas', ['Lawrence', 'Topeka'], 'Illinois']]``, then
    </ul>
    </li>

Note: An older, more restrictive and verbose input format is also supported:
``['States', [['Kansas', [['Lawrence', []], ['Topeka', []]]], ['Illinois', []]]]``,
.. deprecated:: 1.8

    An older, more restrictive and verbose input format is also supported:
    ``['States', [['Kansas', [['Lawrence', []], ['Topeka', []]]], ['Illinois', []]]]``.
    Support for this syntax will be removed in Django 2.0.

.. templatefilter:: upper

+12 −0
Original line number Diff line number Diff line
@@ -636,3 +636,15 @@ built-in tags. Simply remove ``'django.contrib.webdesign'`` from

It provided backwards compatibility for pre-1.0 code, but its functionality is
redundant. Use ``Field.error_messages['invalid']`` instead.

Old :tfilter:`unordered_list` syntax
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

An older (pre-1.0), more restrictive and verbose input format for the
:tfilter:`unordered_list` template filter has been deprecated::

    ``['States', [['Kansas', [['Lawrence', []], ['Topeka', []]]], ['Illinois', []]]]``

Using the new syntax, this becomes::

    ``['States', ['Kansas', ['Lawrence', 'Topeka'], 'Illinois']]``
+15 −11
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@ from __future__ import unicode_literals
import datetime
import decimal
import unittest
import warnings

from django.template.defaultfilters import (
    add, addslashes, capfirst, center, cut, date, default, default_if_none,
@@ -549,6 +550,9 @@ class DefaultFiltersTests(TestCase):
        self.assertEqual(unordered_list([a, b]), '\t<li>ulitem-a</li>\n\t<li>ulitem-b</li>')

        # Old format for unordered lists should still work
        with warnings.catch_warnings(record=True):
            warnings.simplefilter("always")

            self.assertEqual(unordered_list(['item 1', []]), '\t<li>item 1</li>')

            self.assertEqual(unordered_list(['item 1', [['item 1.1', []]]]),
Loading