mirror of
https://github.com/bookwyrm-social/bookwyrm.git
synced 2024-11-26 03:21:05 +00:00
Fixes first_search_result behavior
This commit is contained in:
parent
1e8269b6c9
commit
80c1954aa3
2 changed files with 10 additions and 5 deletions
|
@ -82,6 +82,8 @@ def search_identifiers(query, *filters, return_first=False):
|
|||
*filters, reduce(operator.or_, (Q(**f) for f in or_filters))
|
||||
).distinct()
|
||||
if results.count() <= 1:
|
||||
if return_first:
|
||||
return results.first()
|
||||
return results
|
||||
|
||||
# when there are multiple editions of the same work, pick the default.
|
||||
|
@ -124,8 +126,9 @@ def search_title_author(query, min_confidence, *filters, return_first=False):
|
|||
result = default
|
||||
else:
|
||||
result = editions.first()
|
||||
|
||||
if return_first:
|
||||
return result
|
||||
return result[0]
|
||||
list_results.append(result)
|
||||
return list_results
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@ from django.db import models
|
|||
from django.utils import timezone
|
||||
|
||||
from bookwyrm.connectors import connector_manager
|
||||
from bookwyrm.models import ReadThrough, User, Book
|
||||
from bookwyrm.models import ReadThrough, User, Book, Edition
|
||||
from .fields import PrivacyLevels
|
||||
|
||||
|
||||
|
@ -79,6 +79,10 @@ class ImportItem(models.Model):
|
|||
self.isbn, min_confidence=0.999
|
||||
)
|
||||
if search_result:
|
||||
# it's already in the right format
|
||||
if isinstance(search_result, Edition):
|
||||
return search_result
|
||||
# it's just a search result, book needs to be created
|
||||
# raises ConnectorException
|
||||
return search_result.connector.get_or_create_book(search_result.key)
|
||||
return None
|
||||
|
@ -183,9 +187,7 @@ class ImportItem(models.Model):
|
|||
|
||||
def __repr__(self):
|
||||
# pylint: disable=consider-using-f-string
|
||||
return "<{!r}Item {!r}>".format(
|
||||
self.normalized_data["import_source"], self.normalized_data["title"]
|
||||
)
|
||||
return "<{!r}Item {!r}>".format(self.index, self.normalized_data["title"])
|
||||
|
||||
def __str__(self):
|
||||
# pylint: disable=consider-using-f-string
|
||||
|
|
Loading…
Reference in a new issue