Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 11 additions & 7 deletions django_typesense/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -100,12 +100,13 @@
)

def get_typesense_search_results(
self,
request,
search_term: str,
page_num: int = 1,
filter_by: str = "",
sort_by: str = "",
self,
request,
search_term: str,
page_num: int = 1,
filter_by: str = "",
sort_by: str = "",
list_per_page: int = None
):
"""
Get the results from typesense with the provided filtering, sorting, pagination and search parameters applied
Expand All @@ -116,17 +117,20 @@
page_num: The requested page number
filter_by: The filtering parameters
sort_by: The sort parameters
list_per_page: The number of results to return per page

Returns:
A list of typesense results
"""
if list_per_page is None:
list_per_page = self.list_per_page

Check warning on line 126 in django_typesense/admin.py

View check run for this annotation

Codecov / codecov/patch

django_typesense/admin.py#L125-L126

Added lines #L125 - L126 were not covered by tests

results = typesense_search(
collection_name=self.model.collection_class.schema_name,
q=search_term or "*",
query_by=self.model.collection_class.query_by_fields,
page=page_num,
per_page=self.list_per_page,
per_page=list_per_page,
filter_by=filter_by,
sort_by=sort_by,
)
Expand Down
5 changes: 4 additions & 1 deletion django_typesense/changelist.py
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,9 @@ def get_results(self, request):

# Get the list of objects to display on this page.
if (self.show_all and can_show_all) or not multi_page:
# Reuse values defined in paginator
paginator = self.model_admin.get_paginator(
request, self.results, self.list_max_show_all
)
result_list = paginator.results
else:
try:
Expand Down Expand Up @@ -396,6 +398,7 @@ def get_typesense_results(self, request):
self.page_num,
filter_by=filter_by,
sort_by=sort_by,
list_per_page=self.list_max_show_all # so that if we have all the data if we need to show all
)

# Set query string for clearing all filters.
Expand Down
7 changes: 6 additions & 1 deletion django_typesense/paginator.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,12 @@

def page(self, number):
"""Return a Page object for the given 1-based page number."""
return self._get_page(self.results, number, self)
number = self.validate_number(number)
bottom = (number - 1) * self.per_page
top = bottom + self.per_page
if top + self.orphans >= self.count:
top = self.count
return self._get_page(self.results[bottom:top], number, self)

Check warning on line 57 in django_typesense/paginator.py

View check run for this annotation

Codecov / codecov/patch

django_typesense/paginator.py#L52-L57

Added lines #L52 - L57 were not covered by tests

@cached_property
def count(self):
Expand Down
Loading