mirror of
https://github.com/sissbruecker/linkding.git
synced 2025-09-14 21:19:59 +02:00
Compare commits
3 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
dbe92b4b84 | ||
![]() |
90f62d3482 | ||
![]() |
847f9644f4 |
@@ -1,5 +1,13 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## v1.6.2 (04/04/2021)
|
||||||
|
- [**enhancement**] Expose `date_added` in UI [#85](https://github.com/sissbruecker/linkding/issues/85)
|
||||||
|
- [**closed**] Archived bookmarks - no result when searching for a word which is used only as tag [#83](https://github.com/sissbruecker/linkding/issues/83)
|
||||||
|
- [**closed**] Add archive/unarchive button to edit bookmark page [#82](https://github.com/sissbruecker/linkding/issues/82)
|
||||||
|
- [**enhancement**] Make scraped title and description editable [#80](https://github.com/sissbruecker/linkding/issues/80)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## v1.6.1 (31/03/2021)
|
## v1.6.1 (31/03/2021)
|
||||||
- Expose date_added in UI [#85](https://github.com/sissbruecker/linkding/issues/85)
|
- Expose date_added in UI [#85](https://github.com/sissbruecker/linkding/issues/85)
|
||||||
|
|
||||||
|
@@ -1,3 +1,5 @@
|
|||||||
|
from unittest.mock import patch
|
||||||
|
|
||||||
from django.test import TestCase
|
from django.test import TestCase
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
|
|
||||||
@@ -23,6 +25,14 @@ class UtilsTestCase(TestCase):
|
|||||||
result = humanize_absolute_date(test_case[0], test_case[1])
|
result = humanize_absolute_date(test_case[0], test_case[1])
|
||||||
self.assertEqual(test_case[2], result)
|
self.assertEqual(test_case[2], result)
|
||||||
|
|
||||||
|
def test_humanize_absolute_date_should_use_current_date_as_default(self):
|
||||||
|
with patch.object(timezone, 'now', return_value=timezone.datetime(2021, 1, 1)):
|
||||||
|
self.assertEqual(humanize_absolute_date(timezone.datetime(2021, 1, 1)), 'Today')
|
||||||
|
|
||||||
|
# Regression: Test that subsequent calls use current date instead of cached date (#107)
|
||||||
|
with patch.object(timezone, 'now', return_value=timezone.datetime(2021, 1, 13)):
|
||||||
|
self.assertEqual(humanize_absolute_date(timezone.datetime(2021, 1, 13)), 'Today')
|
||||||
|
|
||||||
def test_humanize_relative_date(self):
|
def test_humanize_relative_date(self):
|
||||||
test_cases = [
|
test_cases = [
|
||||||
(timezone.datetime(2021, 1, 1), timezone.datetime(2022, 1, 1), '1 year ago'),
|
(timezone.datetime(2021, 1, 1), timezone.datetime(2022, 1, 1), '1 year ago'),
|
||||||
@@ -45,3 +55,11 @@ class UtilsTestCase(TestCase):
|
|||||||
for test_case in test_cases:
|
for test_case in test_cases:
|
||||||
result = humanize_relative_date(test_case[0], test_case[1])
|
result = humanize_relative_date(test_case[0], test_case[1])
|
||||||
self.assertEqual(test_case[2], result)
|
self.assertEqual(test_case[2], result)
|
||||||
|
|
||||||
|
def test_humanize_relative_date_should_use_current_date_as_default(self):
|
||||||
|
with patch.object(timezone, 'now', return_value=timezone.datetime(2021, 1, 1)):
|
||||||
|
self.assertEqual(humanize_relative_date(timezone.datetime(2021, 1, 1)), 'Today')
|
||||||
|
|
||||||
|
# Regression: Test that subsequent calls use current date instead of cached date (#107)
|
||||||
|
with patch.object(timezone, 'now', return_value=timezone.datetime(2021, 1, 13)):
|
||||||
|
self.assertEqual(humanize_relative_date(timezone.datetime(2021, 1, 13)), 'Today')
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
from typing import Optional
|
||||||
|
|
||||||
from dateutil.relativedelta import relativedelta
|
from dateutil.relativedelta import relativedelta
|
||||||
from django.template.defaultfilters import pluralize
|
from django.template.defaultfilters import pluralize
|
||||||
@@ -20,7 +21,9 @@ weekday_names = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
def humanize_absolute_date(value: datetime, now=timezone.now()):
|
def humanize_absolute_date(value: datetime, now: Optional[datetime] = None):
|
||||||
|
if not now:
|
||||||
|
now = timezone.now()
|
||||||
delta = relativedelta(now, value)
|
delta = relativedelta(now, value)
|
||||||
yesterday = now - relativedelta(days=1)
|
yesterday = now - relativedelta(days=1)
|
||||||
|
|
||||||
@@ -36,7 +39,9 @@ def humanize_absolute_date(value: datetime, now=timezone.now()):
|
|||||||
return weekday_names[value.isoweekday()]
|
return weekday_names[value.isoweekday()]
|
||||||
|
|
||||||
|
|
||||||
def humanize_relative_date(value: datetime, now: datetime = timezone.now()):
|
def humanize_relative_date(value: datetime, now: Optional[datetime] = None):
|
||||||
|
if not now:
|
||||||
|
now = timezone.now()
|
||||||
delta = relativedelta(now, value)
|
delta = relativedelta(now, value)
|
||||||
|
|
||||||
if delta.years > 0:
|
if delta.years > 0:
|
||||||
|
@@ -1 +1 @@
|
|||||||
1.6.2
|
1.6.3
|
||||||
|
Reference in New Issue
Block a user