Fixes isbn view

This commit is contained in:
Mouse Reeve 2022-08-05 11:43:11 -07:00
parent b4cfda0587
commit 9fad5b5623
3 changed files with 14 additions and 8 deletions

View file

@ -7,13 +7,14 @@ from django.test import TestCase
from django.test.client import RequestFactory from django.test.client import RequestFactory
from bookwyrm import models, views from bookwyrm import models, views
from bookwyrm.tests.validate_html import validate_html
from bookwyrm.settings import DOMAIN from bookwyrm.settings import DOMAIN
class IsbnViews(TestCase): class IsbnViews(TestCase):
"""tag views""" """tag views"""
def setUp(self): def setUp(self): # pylint: disable=invalid-name
"""we need basic test data and mocks""" """we need basic test data and mocks"""
self.factory = RequestFactory() self.factory = RequestFactory()
with patch("bookwyrm.suggested_users.rerank_suggestions_task.delay"), patch( with patch("bookwyrm.suggested_users.rerank_suggestions_task.delay"), patch(
@ -58,4 +59,4 @@ class IsbnViews(TestCase):
is_api.return_value = False is_api.return_value = False
response = view(request, isbn="1234567890123") response = view(request, isbn="1234567890123")
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
response.render() validate_html(response.render())

View file

@ -18,14 +18,17 @@ class Isbn(View):
if is_api_request(request): if is_api_request(request):
return JsonResponse( return JsonResponse(
[book_search.format_search_result(r) for r in book_results], safe=False [book_search.format_search_result(r) for r in book_results[:10]],
safe=False,
) )
paginated = Paginator(book_results, PAGE_LENGTH).get_page( paginated = Paginator(book_results, PAGE_LENGTH)
request.GET.get("page") page = paginated.get_page(request.GET.get("page"))
)
data = { data = {
"results": [{"results": paginated}], "results": page,
"page_range": paginated.get_elided_page_range(
page.number, on_each_side=2, on_ends=1
),
"query": isbn, "query": isbn,
"type": "book", "type": "book",
} }

View file

@ -52,7 +52,9 @@ def api_book_search(request):
min_confidence = request.GET.get("min_confidence", 0) min_confidence = request.GET.get("min_confidence", 0)
# only return local book results via json so we don't cascade # only return local book results via json so we don't cascade
book_results = search(query, min_confidence=min_confidence) book_results = search(query, min_confidence=min_confidence)
return JsonResponse([format_search_result(r) for r in book_results], safe=False) return JsonResponse(
[format_search_result(r) for r in book_results[:10]], safe=False
)
def book_search(request): def book_search(request):