Skip to content

Commit

Permalink
Fixed #35172 -- Fixed intcomma for string floats.
Browse files Browse the repository at this point in the history
Thanks Warwick Brown for the report.

Regression in 55519d6.
  • Loading branch information
felixxm authored Feb 8, 2024
1 parent aaffbab commit 2f14c2c
Show file tree
Hide file tree
Showing 6 changed files with 44 additions and 1 deletion.
2 changes: 2 additions & 0 deletions django/contrib/humanize/templatetags/humanize.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,8 @@ def intcomma(value, use_l10n=True):
if match:
prefix = match[0]
prefix_with_commas = re.sub(r"\d{3}", r"\g<0>,", prefix[::-1])[::-1]
# Remove a leading comma, if needed.
prefix_with_commas = re.sub(r"^(-?),", r"\1", prefix_with_commas)
result = prefix_with_commas + result[len(prefix) :]
return result

Expand Down
13 changes: 13 additions & 0 deletions docs/releases/3.2.25.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
===========================
Django 3.2.25 release notes
===========================

*Expected March 4, 2024*

Django 3.2.25 fixes a regression in 3.2.24.

Bugfixes
========

* Fixed a regression in Django 3.2.24 where ``intcomma`` template filter could
return a leading comma for string representation of floats (:ticket:`35172`).
13 changes: 13 additions & 0 deletions docs/releases/4.2.11.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
===========================
Django 4.2.11 release notes
===========================

*Expected March 4, 2024*

Django 4.2.11 fixes a regression in 4.2.10.

Bugfixes
========

* Fixed a regression in Django 4.2.10 where ``intcomma`` template filter could
return a leading comma for string representation of floats (:ticket:`35172`).
3 changes: 2 additions & 1 deletion docs/releases/5.0.3.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,5 @@ Django 5.0.3 fixes several bugs in 5.0.2.
Bugfixes
========

* ...
* Fixed a regression in Django 5.0.2 where ``intcomma`` template filter could
return a leading comma for string representation of floats (:ticket:`35172`).
2 changes: 2 additions & 0 deletions docs/releases/index.txt
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ versions of the documentation contain the release notes for any later releases.
.. toctree::
:maxdepth: 1

4.2.11
4.2.10
4.2.9
4.2.8
Expand Down Expand Up @@ -97,6 +98,7 @@ versions of the documentation contain the release notes for any later releases.
.. toctree::
:maxdepth: 1

3.2.25
3.2.24
3.2.23
3.2.22
Expand Down
12 changes: 12 additions & 0 deletions tests/humanize_tests/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -129,12 +129,18 @@ def test_intcomma(self):
-1234567.25,
"100",
"-100",
"100.1",
"-100.1",
"100.13",
"-100.13",
"1000",
"-1000",
"10123",
"-10123",
"10311",
"-10311",
"100000.13",
"-100000.13",
"1000000",
"-1000000",
"1234567.1234567",
Expand Down Expand Up @@ -163,12 +169,18 @@ def test_intcomma(self):
"-1,234,567.25",
"100",
"-100",
"100.1",
"-100.1",
"100.13",
"-100.13",
"1,000",
"-1,000",
"10,123",
"-10,123",
"10,311",
"-10,311",
"100,000.13",
"-100,000.13",
"1,000,000",
"-1,000,000",
"1,234,567.1234567",
Expand Down

0 comments on commit 2f14c2c

Please sign in to comment.