@@ -89,25 +89,28 @@ def city_view(city_id: int) -> list[AnyComponent]:
89
89
)
90
90
91
91
92
- class MyTableRow (BaseModel ):
92
+ class User (BaseModel ):
93
93
id : int = Field (title = 'ID' )
94
94
name : str = Field (title = 'Name' )
95
95
dob : date = Field (title = 'Date of Birth' )
96
96
enabled : bool | None = None
97
97
98
98
99
+ users : list [User ] = [
100
+ User (id = 1 , name = 'John' , dob = date (1990 , 1 , 1 ), enabled = True ),
101
+ User (id = 2 , name = 'Jane' , dob = date (1991 , 1 , 1 ), enabled = False ),
102
+ User (id = 3 , name = 'Jack' , dob = date (1992 , 1 , 1 )),
103
+ ]
104
+
105
+
99
106
@router .get ('/users' , response_model = FastUI , response_model_exclude_none = True )
100
107
def users_view () -> list [AnyComponent ]:
101
108
return demo_page (
102
109
* tabs (),
103
- c .Table [MyTableRow ](
104
- data = [
105
- MyTableRow (id = 1 , name = 'John' , dob = date (1990 , 1 , 1 ), enabled = True ),
106
- MyTableRow (id = 2 , name = 'Jane' , dob = date (1991 , 1 , 1 ), enabled = False ),
107
- MyTableRow (id = 3 , name = 'Jack' , dob = date (1992 , 1 , 1 )),
108
- ],
110
+ c .Table [User ](
111
+ data = users ,
109
112
columns = [
110
- DisplayLookup (field = 'name' , on_click = GoToEvent (url = '/more /{id}/' )),
113
+ DisplayLookup (field = 'name' , on_click = GoToEvent (url = '/table/users /{id}/' )),
111
114
DisplayLookup (field = 'dob' , mode = DisplayMode .date ),
112
115
DisplayLookup (field = 'enabled' ),
113
116
],
@@ -135,3 +138,21 @@ def tabs() -> list[AnyComponent]:
135
138
class_name = '+ mb-4' ,
136
139
),
137
140
]
141
+
142
+
143
+ @router .get ('/users/{id}/' , response_model = FastUI , response_model_exclude_none = True )
144
+ def user_profile (id : int ) -> list [AnyComponent ]:
145
+ user : User | None = users [id - 1 ] if id <= len (users ) else None
146
+ return demo_page (
147
+ * tabs (),
148
+ c .Link (components = [c .Text (text = 'Back' )], on_click = BackEvent ()),
149
+ c .Details (
150
+ data = user ,
151
+ fields = [
152
+ DisplayLookup (field = 'name' ),
153
+ DisplayLookup (field = 'dob' , mode = DisplayMode .date ),
154
+ DisplayLookup (field = 'enabled' ),
155
+ ],
156
+ ),
157
+ title = user .name ,
158
+ )
0 commit comments