1
+ import typing
1
2
import gooey_gui as gui
2
3
3
- from bots .models import Workflow
4
4
from daras_ai_v2 import icons
5
+ from daras_ai_v2 .fastapi_tricks import get_app_route_url
6
+ from widgets .saved_workflow import render_pill_with_link
5
7
from widgets .author import render_author_as_breadcrumb
6
- from app_users .models import AppUser
7
- from daras_ai_v2 .breadcrumbs import TitleBreadCrumbs
8
- from bots .models import PublishedRun , SavedRun
9
- from workspaces .models import Workspace
8
+ from widgets .workflow_search import SearchFilters
10
9
11
10
12
- def render_header_title (tb : TitleBreadCrumbs ):
11
+ if typing .TYPE_CHECKING :
12
+ from app_users .models import AppUser
13
+ from bots .models import PublishedRun , SavedRun , Workflow
14
+ from daras_ai_v2 .breadcrumbs import TitleBreadCrumbs
15
+ from workspaces .models import Workspace
16
+
17
+
18
+ def render_header_title (tb : "TitleBreadCrumbs" ):
13
19
with (
14
20
gui .styled ("""
15
21
& h1 { margin: 0 }
@@ -20,7 +26,7 @@ def render_header_title(tb: TitleBreadCrumbs):
20
26
gui .write ("# " + tb .title_with_prefix_url ())
21
27
22
28
23
- def render_help_button (workflow : Workflow ):
29
+ def render_help_button (workflow : " Workflow" ):
24
30
meta = workflow .get_or_create_metadata ()
25
31
if not meta .help_url :
26
32
return
@@ -39,13 +45,15 @@ def render_help_button(workflow: Workflow):
39
45
40
46
41
47
def render_breadcrumbs_with_author (
42
- breadcrumbs : TitleBreadCrumbs ,
48
+ breadcrumbs : " TitleBreadCrumbs" ,
43
49
* ,
44
- user : AppUser | None = None ,
45
- pr : PublishedRun ,
46
- sr : SavedRun ,
47
- current_workspace : Workspace | None = None ,
50
+ pr : "PublishedRun" ,
51
+ sr : "SavedRun" ,
52
+ user : typing . Optional [ "AppUser" ] = None ,
53
+ current_workspace : typing . Optional [ " Workspace" ] = None ,
48
54
):
55
+ from routers .root import explore_page
56
+
49
57
with gui .div (
50
58
className = "d-flex flex-wrap align-items-center container-margin-reset"
51
59
):
@@ -62,14 +70,16 @@ def render_breadcrumbs_with_author(
62
70
with gui .div (className = "d-flex align-items-center" ):
63
71
gui .write ("by" , className = "me-2 d-none d-md-block text-muted" )
64
72
render_author_as_breadcrumb (
65
- user = user ,
66
- pr = pr ,
67
- sr = sr ,
68
- current_workspace = current_workspace ,
73
+ user = user , pr = pr , sr = sr , current_workspace = current_workspace
69
74
)
70
75
71
76
if pr .saved_run_id != sr .id :
72
77
return
73
78
74
79
for tag in pr .tags .all ():
75
- tag .render (className = "ms-2" )
80
+ query_params = SearchFilters (search = tag .name ).get_query_params ()
81
+ render_pill_with_link (
82
+ tag .render (),
83
+ link_to = get_app_route_url (explore_page , query_params = query_params ),
84
+ className = "ms-2 border" ,
85
+ )
0 commit comments