@@ -38,20 +38,15 @@ class PagedResult(BaseModel):
3838
3939
4040def build_pq (request ) -> Optional [PagedQuery ]:
41- # FIXME this is compatible with the old frontend, once the frontend is updated,
42- # FIXME we should do pagination and add default page_number and page_size
4341 page_number = request .GET .get ('page_number' )
4442 page_size = request .GET .get ('page_size' )
45- if not page_number or not page_size :
46- return None
47-
4843 match_key = request .GET .get ('match_key' , "" )
4944 match_value = request .GET .get ('match_value' , "" )
5045 order_by = request .GET .get ('order_by' , "" )
5146 order_desc = request .GET .get ('order_desc' , "true" )
5247 return PagedQuery (
53- page_number = int (page_number ),
54- page_size = int (page_size ),
48+ page_number = int (page_number ) if page_number else None ,
49+ page_size = int (page_size ) if page_size else None ,
5550 match_key = match_key ,
5651 match_value = match_value ,
5752 order_by = order_by ,
@@ -66,13 +61,13 @@ def build_order_by(pq: PagedQuery) -> str:
6661
6762
6863async def build_pr (pq : PagedQuery , query_set : QuerySet ) -> PagedResult :
69- if not pq :
70- return PagedResult (count = - 1 , data = query_set )
64+ count = await get_count (query_set )
65+ query_set = query_set .order_by (build_order_by (pq ))
66+ if not pq or not pq .page_number or not pq .page_size :
67+ return PagedResult (count = count , page_number = 0 , page_size = count , data = query_set )
7168
7269 offset = (pq .page_number - 1 ) * pq .page_size
7370 limit = pq .page_size
74- count = await get_count (query_set )
75- query_set = query_set .order_by (build_order_by (pq ))
7671 return PagedResult (count = count , page_number = pq .page_number , page_size = pq .page_size ,
7772 data = query_set [offset :offset + limit ])
7873
0 commit comments