summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMariusz Felisiak <felisiak.mariusz@gmail.com>2024-02-08 10:58:54 +0100
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2024-02-08 10:59:43 +0100
commitc22075af803e031e2977ed93391c2e3c6a714df4 (patch)
tree29049665388918ec6b092e3eb88c39ae333e6e0d
parent540b28ff9f7fc9a26181146b139af58f87bc9f53 (diff)
[5.0.x] Fixed #35172 -- Fixed intcomma for string floats.
Thanks Warwick Brown for the report. Regression in 55519d6cf8998fe4c8f5c8abffc2b10a7c3d14e9. Backport of 2f14c2cedc9c92373471c1f98a80c81ba299584a from main
-rw-r--r--django/contrib/humanize/templatetags/humanize.py2
-rw-r--r--docs/releases/3.2.25.txt13
-rw-r--r--docs/releases/4.2.11.txt13
-rw-r--r--docs/releases/5.0.3.txt3
-rw-r--r--docs/releases/index.txt2
-rw-r--r--tests/humanize_tests/tests.py12
6 files changed, 44 insertions, 1 deletions
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 68261d4c30..92859af4ea 100644
--- a/docs/releases/index.txt
+++ b/docs/releases/index.txt
@@ -36,6 +36,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
@@ -90,6 +91,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",