From 89a7ff7723ec07d8ad0d2bfe4950a30a4ec52ba2 Mon Sep 17 00:00:00 2001 From: Your Name Date: Sat, 18 Jul 2026 23:28:02 +0500 Subject: [PATCH] fix: address user feedback on sources, raw_posts and workers UI/UX --- src/vk_parser_app/admin.py | 8 +- .../templates/raw_posts_content.html | 80 ++++---- src/vk_parser_app/templates/source_row.html | 27 ++- src/vk_parser_app/templates/sources.html | 138 +++++--------- .../templates/sources_content.html | 10 +- src/vk_parser_app/templates/workers.html | 174 ++++++++---------- 6 files changed, 205 insertions(+), 232 deletions(-) diff --git a/src/vk_parser_app/admin.py b/src/vk_parser_app/admin.py index d24e179..666e2bd 100644 --- a/src/vk_parser_app/admin.py +++ b/src/vk_parser_app/admin.py @@ -1966,22 +1966,23 @@ async def logout(request: Request): @app.get("/sources", response_class=HTMLResponse) -async def sources_list(request: Request, q: str = "", status_filter: str = "", page: int = 1, per_page: int = 50): +async def sources_list(request: Request, q: str = "", status_filter: str = "", active_filter: str = "", page: int = 1, per_page: int = 50): user = await get_current_user(request) if not user: return redirect("/login") pool = await get_pool() table_filters = parse_table_filters(request, SOURCE_FIELD_SPECS) table_sorts = parse_table_sorts(request, SOURCE_FIELD_SPECS) - filter_clauses, filter_args = build_filter_sql(table_filters, SOURCE_FIELD_SPECS, 3) + filter_clauses, filter_args = build_filter_sql(table_filters, SOURCE_FIELD_SPECS, 4) where_parts = [ "s.archived_at IS NULL", "($1='' OR s.name ILIKE '%' || $1 || '%' OR COALESCE(s.tag,'') ILIKE '%' || $1 || '%' OR s.url ILIKE '%' || $1 || '%' OR COALESCE(s.external_id,'') ILIKE '%' || $1 || '%')", "($2='' OR s.status=$2)", + "($3='' OR ($3='on' AND s.active=TRUE) OR ($3='off' AND s.active=FALSE))", *filter_clauses, ] where_sql = " AND ".join(where_parts) - base_args = [q.strip(), status_filter.strip(), *filter_args] + base_args = [q.strip(), status_filter.strip(), active_filter.strip(), *filter_args] total = int( await pool.fetchval( f""" @@ -2029,6 +2030,7 @@ async def sources_list(request: Request, q: str = "", status_filter: str = "", p sources=sources, q=q, status_filter=status_filter, + active_filter=active_filter, pagination=pager, table_filters=table_filters, table_sorts=table_sorts, diff --git a/src/vk_parser_app/templates/raw_posts_content.html b/src/vk_parser_app/templates/raw_posts_content.html index 7b38af1..d3018e6 100644 --- a/src/vk_parser_app/templates/raw_posts_content.html +++ b/src/vk_parser_app/templates/raw_posts_content.html @@ -2,7 +2,7 @@