implement show_subed_only on playlist view

This commit is contained in:
simon 2021-11-18 17:14:11 +07:00
parent a1167bac4e
commit f26fbc0dc5
No known key found for this signature in database
GPG Key ID: 2C15AA5E89985DD4

View File

@ -732,7 +732,7 @@ class PlaylistView(View):
)
url = view_config["es_url"] + "/ta_playlist/_search"
data = self.build_data(pagination_handler, search_get)
data = self.build_data(pagination_handler, search_get, view_config)
search = SearchHandler(url, data)
playlist_hits = search.get_data()
pagination_handler.validate(search.max_hits)
@ -742,6 +742,7 @@ class PlaylistView(View):
"search_form": search_form,
"title": "Playlists",
"colors": view_config["colors"],
"show_subed_only": view_config["show_subed_only"],
"pagination": pagination_handler.pagination,
"playlists": playlist_hits,
"view_style": view_config["view_style"],
@ -749,7 +750,7 @@ class PlaylistView(View):
return render(request, "home/playlist.html", context)
@staticmethod
def build_data(pagination_handler, search_get):
def build_data(pagination_handler, search_get, view_config):
"""build data object for query"""
data = {
"size": pagination_handler.pagination["page_size"],
@ -759,6 +760,8 @@ class PlaylistView(View):
},
"sort": [{"playlist_name.keyword": {"order": "asc"}}],
}
if view_config["show_subed_only"]:
data["query"] = {"term": {"playlist_subscribed": {"value": True}}}
if search_get:
data["query"] = {
"bool": {
@ -791,10 +794,14 @@ class PlaylistView(View):
if not view_style:
view_style = config_handler.config["default_view"]["channel"]
sub_only_key = f"{user_id}:show_subed_only"
show_subed_only = RedisArchivist().get_message(sub_only_key)["status"]
view_config = {
"es_url": config_handler.config["application"]["es_url"],
"colors": config_handler.colors,
"view_style": view_style,
"show_subed_only": show_subed_only,
}
return view_config