trigger reading status modals from move button

- unhide reading status shelves
- trigger modals when moving to a read status shelf
- force page refresh when using move button
This commit is contained in:
Hugh Rundle
2021-11-20 08:06:13 +11:00
parent ec39346e67
commit 9ffe4d340e
8 changed files with 68 additions and 7 deletions

View File

@ -1,6 +1,7 @@
""" shelf views """
from django.db import IntegrityError, transaction
from django.contrib.auth.decorators import login_required
from django.http.response import HttpResponse
from django.shortcuts import get_object_or_404, redirect
from django.views.decorators.http import require_POST
@ -91,13 +92,15 @@ def shelve(request):
@login_required
@require_POST
def unshelve(request):
def unshelve(request, referer=None, book_id=False):
"""remove a book from a user's shelf"""
book = get_object_or_404(models.Edition, id=request.POST.get("book"))
id = book_id if book_id else request.POST.get("book")
book = get_object_or_404(models.Edition, id=id)
shelf_book = get_object_or_404(
models.ShelfBook, book=book, shelf__id=request.POST["shelf"]
)
shelf_book.raise_not_deletable(request.user)
shelf_book.delete()
if bool(referer):
return HttpResponse(headers={"forceReload" : "true"})
return redirect(request.headers.get("Referer", "/"))