Skip to content

Commit 1a0162a

Browse files
committed
feat: show count of results in search result view
1 parent 0643b1a commit 1a0162a

File tree

2 files changed

+18
-6
lines changed

2 files changed

+18
-6
lines changed

widgets/explore.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
from widgets.workflow_search import (
1414
SearchFilters,
1515
render_search_bar_with_redirect,
16+
get_filtered_published_runs,
1617
render_search_filters,
1718
render_search_results,
1819
)
@@ -62,14 +63,17 @@ def render(request: Request, search_filters: SearchFilters | None):
6263
)
6364

6465
search_filters = search_filters or SearchFilters()
66+
qs = get_filtered_published_runs(request.user, search_filters)
6567
render_search_bar_with_redirect(
6668
request=request,
6769
search_filters=search_filters,
6870
max_width="600px",
6971
)
7072
with gui.div(className="mt-3"):
7173
new_filters = render_search_filters(
72-
current_user=request.user, search_filters=copy(search_filters)
74+
current_user=request.user,
75+
search_filters=copy(search_filters),
76+
result_count=len(qs),
7377
)
7478
if new_filters != search_filters:
7579
# if the search bar value has changed, redirect to the new search page
@@ -79,7 +83,7 @@ def render(request: Request, search_filters: SearchFilters | None):
7983

8084
if search_filters:
8185
with gui.div(className="my-4"):
82-
render_search_results(request.user, search_filters)
86+
render_search_results(qs, request.user, search_filters)
8387
return
8488

8589
for category, pages in all_home_pages_by_category.items():

widgets/workflow_search.py

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
QuerySet,
1212
Value,
1313
)
14-
from fastapi import Request
14+
from django.utils.translation import ngettext
1515
from pydantic import BaseModel, field_validator
1616

1717
from app_users.models import AppUser
@@ -80,7 +80,9 @@ def to_lower(cls, v):
8080

8181

8282
def render_search_filters(
83-
current_user: AppUser | None = None, search_filters: SearchFilters | None = None
83+
current_user: AppUser | None = None,
84+
search_filters: SearchFilters | None = None,
85+
result_count: int | None = None,
8486
):
8587
if not search_filters:
8688
search_filters = SearchFilters()
@@ -125,6 +127,11 @@ def render_search_filters(
125127
with gui.div(
126128
className=f"{col_class} d-flex gap-2 justify-content-end align-items-center",
127129
):
130+
if result_count is not None:
131+
gui.caption(
132+
f"{result_count} {ngettext('result', 'results', result_count)}",
133+
className="text-muted d-none d-md-block",
134+
)
128135
with (
129136
gui.styled(
130137
"""
@@ -377,8 +384,9 @@ def _render_selectbox(
377384
)
378385

379386

380-
def render_search_results(user: AppUser | None, search_filters: SearchFilters):
381-
qs = get_filtered_published_runs(user, search_filters)
387+
def render_search_results(
388+
qs: QuerySet[PublishedRun], user: AppUser | None, search_filters: SearchFilters
389+
):
382390
qs = qs.select_related("workspace", "created_by", "saved_run")
383391

384392
def _render_run(pr: PublishedRun):

0 commit comments

Comments
 (0)