Merge branch 'main' into add-edition

This commit is contained in:
Mouse Reeve
2022-03-16 16:16:55 -07:00
153 changed files with 10991 additions and 6067 deletions

View File

@@ -12,7 +12,7 @@ from django.views.decorators.http import require_POST
from bookwyrm import forms, models
from bookwyrm.activitypub import ActivitypubResponse
from bookwyrm.connectors import connector_manager
from bookwyrm.connectors import connector_manager, ConnectorException
from bookwyrm.connectors.abstract_connector import get_image
from bookwyrm.settings import PAGE_LENGTH
from bookwyrm.views.helpers import is_api_request
@@ -22,7 +22,7 @@ from bookwyrm.views.helpers import is_api_request
class Book(View):
"""a book! this is the stuff"""
def get(self, request, book_id, user_statuses=False):
def get(self, request, book_id, user_statuses=False, update_error=False):
"""info about a book"""
if is_api_request(request):
book = get_object_or_404(
@@ -80,9 +80,11 @@ class Book(View):
else None,
"rating": reviews.aggregate(Avg("rating"))["rating__avg"],
"lists": lists,
"update_error": update_error,
}
if request.user.is_authenticated:
data["list_options"] = request.user.list_set.exclude(id__in=data["lists"])
data["file_link_form"] = forms.FileLinkForm()
readthroughs = models.ReadThrough.objects.filter(
user=request.user,
@@ -190,6 +192,10 @@ def update_book_from_remote(request, book_id, connector_identifier):
)
book = get_object_or_404(models.Book.objects.select_subclasses(), id=book_id)
connector.update_book_from_remote(book)
try:
connector.update_book_from_remote(book)
except ConnectorException:
# the remote source isn't available or doesn't know this book
return Book().get(request, book_id, update_error=True)
return redirect("book", book.id)

View File

@@ -58,8 +58,12 @@ class Editions(View):
)
paginated = Paginator(editions, PAGE_LENGTH)
page = paginated.get_page(request.GET.get("page"))
data = {
"editions": paginated.get_page(request.GET.get("page")),
"editions": page,
"page_range": paginated.get_elided_page_range(
page.number, on_each_side=2, on_ends=1
),
"work": work,
"work_form": forms.EditionFromWorkForm(instance=work),
"languages": languages,