From 2f14c2cedc9c92373471c1f98a80c81ba299584a Mon Sep 17 00:00:00 2001 From: Mariusz Felisiak Date: Thu, 8 Feb 2024 10:58:54 +0100 Subject: [PATCH] Fixed #35172 -- Fixed intcomma for string floats. Thanks Warwick Brown for the report. Regression in 55519d6cf8998fe4c8f5c8abffc2b10a7c3d14e9. --- django/contrib/humanize/templatetags/humanize.py | 2 ++ docs/releases/3.2.25.txt | 13 +++++++++++++ docs/releases/4.2.11.txt | 13 +++++++++++++ docs/releases/5.0.3.txt | 3 ++- docs/releases/index.txt | 2 ++ tests/humanize_tests/tests.py | 12 ++++++++++++ 6 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 docs/releases/3.2.25.txt create mode 100644 docs/releases/4.2.11.txt diff --git a/django/contrib/humanize/templatetags/humanize.py b/django/contrib/humanize/templatetags/humanize.py index 2c26f8944a..19000c185c 100644 --- a/django/contrib/humanize/templatetags/humanize.py +++ b/django/contrib/humanize/templatetags/humanize.py @@ -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 diff --git a/docs/releases/3.2.25.txt b/docs/releases/3.2.25.txt new file mode 100644 index 0000000000..c84483f783 --- /dev/null +++ b/docs/releases/3.2.25.txt @@ -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`). diff --git a/docs/releases/4.2.11.txt b/docs/releases/4.2.11.txt new file mode 100644 index 0000000000..c59f131b1a --- /dev/null +++ b/docs/releases/4.2.11.txt @@ -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`). diff --git a/docs/releases/5.0.3.txt b/docs/releases/5.0.3.txt index 8fe37c9d90..384ce27fb7 100644 --- a/docs/releases/5.0.3.txt +++ b/docs/releases/5.0.3.txt @@ -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`). diff --git a/docs/releases/index.txt b/docs/releases/index.txt index 3f66974821..01c2ac949d 100644 --- a/docs/releases/index.txt +++ b/docs/releases/index.txt @@ -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 @@ -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 diff --git a/tests/humanize_tests/tests.py b/tests/humanize_tests/tests.py index a78bbadafd..5e4f7f0ef7 100644 --- a/tests/humanize_tests/tests.py +++ b/tests/humanize_tests/tests.py @@ -129,12 +129,18 @@ class HumanizeTests(SimpleTestCase): -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", @@ -163,12 +169,18 @@ class HumanizeTests(SimpleTestCase): "-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",