Add date filters for REST API (#1080)

* Add modified_since query parameter

* Add added_since parameter

* update date_modified when assets change
This commit is contained in:
Sascha Ißbrücker
2025-05-30 10:24:19 +02:00
committed by GitHub
parent 578680c3c1
commit bb796c9bdb
6 changed files with 172 additions and 5 deletions

View File

@@ -171,7 +171,7 @@ class BookmarkSearch:
FILTER_UNREAD_YES = "yes"
FILTER_UNREAD_NO = "no"
params = ["q", "user", "sort", "shared", "unread"]
params = ["q", "user", "sort", "shared", "unread", "modified_since", "added_since"]
preferences = ["sort", "shared", "unread"]
defaults = {
"q": "",
@@ -179,6 +179,8 @@ class BookmarkSearch:
"sort": SORT_ADDED_DESC,
"shared": FILTER_SHARED_OFF,
"unread": FILTER_UNREAD_OFF,
"modified_since": None,
"added_since": None,
}
def __init__(
@@ -188,6 +190,8 @@ class BookmarkSearch:
sort: str = None,
shared: str = None,
unread: str = None,
modified_since: str = None,
added_since: str = None,
preferences: dict = None,
):
if not preferences:
@@ -199,6 +203,8 @@ class BookmarkSearch:
self.sort = sort or self.defaults["sort"]
self.shared = shared or self.defaults["shared"]
self.unread = unread or self.defaults["unread"]
self.modified_since = modified_since or self.defaults["modified_since"]
self.added_since = added_since or self.defaults["added_since"]
def is_modified(self, param):
value = self.__dict__[param]
@@ -268,6 +274,8 @@ class BookmarkSearchForm(forms.Form):
sort = forms.ChoiceField(choices=SORT_CHOICES)
shared = forms.ChoiceField(choices=FILTER_SHARED_CHOICES, widget=forms.RadioSelect)
unread = forms.ChoiceField(choices=FILTER_UNREAD_CHOICES, widget=forms.RadioSelect)
modified_since = forms.CharField(required=False)
added_since = forms.CharField(required=False)
def __init__(
self,