Re-shelve books

This commit is contained in:
Mouse Reeve
2020-01-29 00:22:48 -08:00
parent f3330ab6e7
commit dd478a3587
4 changed files with 65 additions and 8 deletions

View File

@ -180,12 +180,17 @@ def book_page(request, book_identifier):
@csrf_exempt
@login_required
def shelve(request, shelf_id, book_id):
def shelve(request, shelf_id, book_id, reshelve=True):
''' put a book on a user's shelf '''
# TODO: handle "reshelving"
book = models.Book.objects.get(id=book_id)
shelf = models.Shelf.objects.get(identifier=shelf_id)
api.handle_shelve(request.user, book, shelf)
desired_shelf = models.Shelf.objects.get(identifier=shelf_id)
if reshelve:
try:
current_shelf = models.Shelf.objects.get(user=request.user, book=book)
api.handle_unshelve(request.user, book, current_shelf)
except models.Shelf.DoesNotExist:
pass
api.handle_shelve(request.user, book, desired_shelf)
return redirect('/')