File tree Expand file tree Collapse file tree 3 files changed +21
-9
lines changed
Expand file tree Collapse file tree 3 files changed +21
-9
lines changed Original file line number Diff line number Diff line change @@ -100,12 +100,13 @@ def get_paginator(
100100 )
101101
102102 def get_typesense_search_results (
103- self ,
104- request ,
105- search_term : str ,
106- page_num : int = 1 ,
107- filter_by : str = "" ,
108- sort_by : str = "" ,
103+ self ,
104+ request ,
105+ search_term : str ,
106+ page_num : int = 1 ,
107+ filter_by : str = "" ,
108+ sort_by : str = "" ,
109+ list_per_page : int = None
109110 ):
110111 """
111112 Get the results from typesense with the provided filtering, sorting, pagination and search parameters applied
@@ -116,17 +117,20 @@ def get_typesense_search_results(
116117 page_num: The requested page number
117118 filter_by: The filtering parameters
118119 sort_by: The sort parameters
120+ list_per_page: The number of results to return per page
119121
120122 Returns:
121123 A list of typesense results
122124 """
125+ if list_per_page is None :
126+ list_per_page = self .list_per_page
123127
124128 results = typesense_search (
125129 collection_name = self .model .collection_class .schema_name ,
126130 q = search_term or "*" ,
127131 query_by = self .model .collection_class .query_by_fields ,
128132 page = page_num ,
129- per_page = self . list_per_page ,
133+ per_page = list_per_page ,
130134 filter_by = filter_by ,
131135 sort_by = sort_by ,
132136 )
Original file line number Diff line number Diff line change @@ -152,7 +152,9 @@ def get_results(self, request):
152152
153153 # Get the list of objects to display on this page.
154154 if (self .show_all and can_show_all ) or not multi_page :
155- # Reuse values defined in paginator
155+ paginator = self .model_admin .get_paginator (
156+ request , self .results , self .list_max_show_all
157+ )
156158 result_list = paginator .results
157159 else :
158160 try :
@@ -396,6 +398,7 @@ def get_typesense_results(self, request):
396398 self .page_num ,
397399 filter_by = filter_by ,
398400 sort_by = sort_by ,
401+ list_per_page = self .list_max_show_all # so that if we have all the data if we need to show all
399402 )
400403
401404 # Set query string for clearing all filters.
Original file line number Diff line number Diff line change @@ -49,7 +49,12 @@ def prepare_results(self):
4949
5050 def page (self , number ):
5151 """Return a Page object for the given 1-based page number."""
52- return self ._get_page (self .results , number , self )
52+ number = self .validate_number (number )
53+ bottom = (number - 1 ) * self .per_page
54+ top = bottom + self .per_page
55+ if top + self .orphans >= self .count :
56+ top = self .count
57+ return self ._get_page (self .results [bottom :top ], number , self )
5358
5459 @cached_property
5560 def count (self ):
You can’t perform that action at this time.
0 commit comments