Fixes redirects in fallback post modal

This commit is contained in:
Mouse Reeve 2021-09-05 15:14:57 -07:00
parent 55b674258d
commit a2811b6c1b

View file

@ -31,6 +31,7 @@ class ReadingStatus(View):
}.get(status) }.get(status)
if not template: if not template:
return HttpResponseNotFound() return HttpResponseNotFound()
# redirect if we're already on this shelf
return TemplateResponse(request, f"reading_progress/{template}", {"book": book}) return TemplateResponse(request, f"reading_progress/{template}", {"book": book})
def post(self, request, status, book_id): def post(self, request, status, book_id):
@ -58,11 +59,15 @@ class ReadingStatus(View):
) )
.first() .first()
) )
referer = request.headers.get("Referer", "/")
if "reading-status" in referer:
referer = "/"
if current_status_shelfbook is not None: if current_status_shelfbook is not None:
if current_status_shelfbook.shelf.identifier != desired_shelf.identifier: if current_status_shelfbook.shelf.identifier != desired_shelf.identifier:
current_status_shelfbook.delete() current_status_shelfbook.delete()
else: # It already was on the shelf else: # It already was on the shelf
return redirect(request.headers.get("Referer", "/")) return redirect(referer)
models.ShelfBook.objects.create( models.ShelfBook.objects.create(
book=book, shelf=desired_shelf, user=request.user book=book, shelf=desired_shelf, user=request.user
@ -87,8 +92,7 @@ class ReadingStatus(View):
else: else:
privacy = request.POST.get("privacy") privacy = request.POST.get("privacy")
handle_reading_status(request.user, desired_shelf, book, privacy) handle_reading_status(request.user, desired_shelf, book, privacy)
return redirect(referer)
return redirect(request.headers.get("Referer", "/"))
@login_required @login_required