MCPcopy
hub / github.com/fastapi-admin/fastapi-admin / list_view

Function list_view

fastapi_admin/routes/resources.py:20–75  ·  view source on GitHub ↗
(
    request: Request,
    model: Model = Depends(get_model),
    resources=Depends(get_resources),
    model_resource: ModelResource = Depends(get_model_resource),
    resource: str = Path(...),
    page_size: int = 10,
    page_num: int = 1,
)

Source from the content-addressed store, hash-verified

18
19@router.get("/{resource}/list")
20async def list_view(
21 request: Request,
22 model: Model = Depends(get_model),
23 resources=Depends(get_resources),
24 model_resource: ModelResource = Depends(get_model_resource),
25 resource: str = Path(...),
26 page_size: int = 10,
27 page_num: int = 1,
28):
29 fields_label = model_resource.get_fields_label()
30 fields = model_resource.get_fields()
31 qs = model.all()
32 params, qs = await model_resource.resolve_query_params(request, dict(request.query_params), qs)
33 filters = await model_resource.get_filters(request, params)
34 total = await qs.count()
35 if page_size:
36 qs = qs.limit(page_size)
37 else:
38 page_size = model_resource.page_size
39 qs = qs.offset((page_num - 1) * page_size)
40 values = await qs.values()
41 rendered_values, row_attributes, column_attributes, cell_attributes = await render_values(
42 request, model_resource, fields, values
43 )
44 context = {
45 "request": request,
46 "resources": resources,
47 "fields_label": fields_label,
48 "fields": fields,
49 "values": values,
50 "row_attributes": row_attributes,
51 "column_attributes": column_attributes,
52 "cell_attributes": cell_attributes,
53 "rendered_values": rendered_values,
54 "filters": filters,
55 "resource": resource,
56 "model_resource": model_resource,
57 "resource_label": model_resource.label,
58 "page_size": page_size,
59 "page_num": page_num,
60 "total": total,
61 "from": page_size * (page_num - 1) + 1,
62 "to": page_size * page_num,
63 "page_title": model_resource.page_title,
64 "page_pre_title": model_resource.page_pre_title,
65 }
66 try:
67 return templates.TemplateResponse(
68 f"{resource}/list.html",
69 context=context,
70 )
71 except TemplateNotFound:
72 return templates.TemplateResponse(
73 "list.html",
74 context=context,
75 )
76
77

Callers

nothing calls this directly

Calls 5

render_valuesFunction · 0.90
get_fields_labelMethod · 0.80
get_fieldsMethod · 0.80
resolve_query_paramsMethod · 0.80
get_filtersMethod · 0.80

Tested by

no test coverage detected