From 5e6c3d24b31af8af5514c6b7ecf700ae7836eef8 Mon Sep 17 00:00:00 2001 From: Karen Tracey Date: Sat, 12 Dec 2009 17:29:46 +0000 Subject: [PATCH] [1.1.X] Fixed #11972: Corrected title filter handling of numbers followed by letters. Thanks schwank@gmail.com and Randy Barlow. git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.1.X@11823 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- AUTHORS | 2 ++ django/template/defaultfilters.py | 3 ++- tests/regressiontests/templates/filters.py | 16 +++++++++++----- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/AUTHORS b/AUTHORS index 06e1266155..7ea97b5537 100644 --- a/AUTHORS +++ b/AUTHORS @@ -54,6 +54,7 @@ answer newbie questions, and generally made Django that much better: Niran Babalola Morten Bagai Mikaƫl Barbero + Randy Barlow Scott Barr Jiri Barton Ned Batchelder @@ -378,6 +379,7 @@ answer newbie questions, and generally made Django that much better: Massimo Scamarcia David Schein Bernd Schlapsi + schwank@gmail.com scott@staplefish.com Ilya Semenov serbaut@gmail.com diff --git a/django/template/defaultfilters.py b/django/template/defaultfilters.py index 2957c3d045..a8c25670f6 100644 --- a/django/template/defaultfilters.py +++ b/django/template/defaultfilters.py @@ -249,7 +249,8 @@ stringformat.is_safe = True def title(value): """Converts a string into titlecase.""" - return re.sub("([a-z])'([A-Z])", lambda m: m.group(0).lower(), value.title()) + t = re.sub("([a-z])'([A-Z])", lambda m: m.group(0).lower(), value.title()) + return re.sub("\d([A-Z])", lambda m: m.group(0).lower(), t) title.is_safe = True title = stringfilter(title) diff --git a/tests/regressiontests/templates/filters.py b/tests/regressiontests/templates/filters.py index 2b448574f7..88266e107b 100644 --- a/tests/regressiontests/templates/filters.py +++ b/tests/regressiontests/templates/filters.py @@ -120,13 +120,19 @@ def get_filter_tests(): # Notice that escaping is applied *after* any filters, so the string # formatting here only needs to deal with pre-escaped characters. - 'filter-stringformat01': ('{% autoescape off %}.{{ a|stringformat:"5s" }}. .{{ b|stringformat:"5s" }}.{% endautoescape %}', {"a": "a