diff --git a/frappe/tests/test_utils.py b/frappe/tests/test_utils.py index 105f0f3eed..899e0e7299 100644 --- a/frappe/tests/test_utils.py +++ b/frappe/tests/test_utils.py @@ -685,7 +685,6 @@ class TestDateUtils(IntegrationTestCase): def test_pretty_date(self): from frappe import _ - # differnt cases now = get_datetime() test_cases = { @@ -707,6 +706,8 @@ class TestDateUtils(IntegrationTestCase): for dt, exp_message in test_cases.items(): self.assertEqual(pretty_date(dt), exp_message) + self.assertEqual(pretty_date(add_to_date(now, days=-5), mini=True), "5d") + def test_date_from_timegrain(self): start_date = getdate("2021-01-01") diff --git a/frappe/utils/data.py b/frappe/utils/data.py index 44aee027f1..06fbe28b44 100644 --- a/frappe/utils/data.py +++ b/frappe/utils/data.py @@ -1692,7 +1692,7 @@ def escape_html(text: str) -> str: return "".join(html_escape_table.get(c, c) for c in text) -def pretty_date(iso_datetime: datetime.datetime | str) -> str: +def pretty_date(iso_datetime: datetime.datetime | str, mini=False) -> str: """Return a localized string representation of the delta to the current system time. For example, "1 hour ago", "2 days ago", "in 5 seconds", etc. @@ -1706,7 +1706,12 @@ def pretty_date(iso_datetime: datetime.datetime | str) -> str: iso_datetime = get_datetime(iso_datetime) now_dt = now_datetime() locale = frappe.local.lang.replace("-", "_") if frappe.local.lang else None - return format_timedelta(iso_datetime - now_dt, add_direction=True, locale=locale) + return format_timedelta( + iso_datetime - now_dt, + add_direction=not mini, + locale=locale, + format="long" if not mini else "narrow", + ) def comma_or(some_list: list | tuple, add_quotes=True) -> str: