make watched filter nullable dropdown

This commit is contained in:
Simon
2025-08-11 19:55:27 +07:00
parent 59331b2b40
commit d8e5ee7e04
10 changed files with 42 additions and 12 deletions

View File

@@ -38,7 +38,7 @@ class UserMeConfigSerializer(serializers.Serializer):
view_style_downloads = serializers.ChoiceField(choices=["grid", "list"])
view_style_playlist = serializers.ChoiceField(choices=["grid", "list"])
grid_items = serializers.IntegerField(max_value=7, min_value=3)
hide_watched = serializers.BooleanField()
hide_watched = serializers.BooleanField(allow_null=True)
file_size_unit = serializers.ChoiceField(choices=["binary", "metric"])
show_ignored_only = serializers.BooleanField()
show_subed_only = serializers.BooleanField()

View File

@@ -21,7 +21,7 @@ class UserConfigType(TypedDict, total=False):
view_style_downloads: str
view_style_playlist: str
grid_items: int
hide_watched: bool
hide_watched: bool | None
file_size_unit: str
show_ignored_only: bool
show_subed_only: bool

View File

@@ -112,7 +112,7 @@ class VideoListQuerySerializer(serializers.Serializer):
playlist = serializers.CharField(required=False)
channel = serializers.CharField(required=False)
watch = serializers.ChoiceField(
choices=WatchedEnum.values(), required=False
choices=WatchedEnum.values(), required=False, allow_null=True
)
sort = serializers.ChoiceField(choices=SortEnum.names(), required=False)
order = serializers.ChoiceField(choices=OrderEnum.values(), required=False)

View File

@@ -35,7 +35,7 @@ class QueryBuilder:
must_list.append({"match": {"playlist.keyword": playlist}})
watch = self.request_params.get("watch")
if watch:
if watch is not None:
watch_must_list = self.parse_watch(watch)
must_list.append(watch_must_list)