diff --git a/bookwyrm/templates/lists/list.html b/bookwyrm/templates/lists/list.html index 76c12aca..8764d61b 100644 --- a/bookwyrm/templates/lists/list.html +++ b/bookwyrm/templates/lists/list.html @@ -37,9 +37,9 @@

Added by {% include 'snippets/username.html' with user=item.added_by %}

{% if list.user == request.user or list.curation == 'open' and item.added_by == request.user %} - {% endif %} diff --git a/bookwyrm/urls.py b/bookwyrm/urls.py index 89cc5c41..ae0f25f3 100644 --- a/bookwyrm/urls.py +++ b/bookwyrm/urls.py @@ -92,6 +92,8 @@ urlpatterns = [ views.List.as_view(), name='list'), re_path(r'^list/(?P\d+)/add/?$', views.list.add_book, name='list-add-book'), + re_path(r'^list/(?P\d+)/remove/?$', + views.list.remove_book, name='list-remove-book'), re_path(r'^list/(?P\d+)/curate/?$', views.Curate.as_view(), name='list-curate'), diff --git a/bookwyrm/views/list.py b/bookwyrm/views/list.py index 9e76e12c..2e9afe33 100644 --- a/bookwyrm/views/list.py +++ b/bookwyrm/views/list.py @@ -161,3 +161,16 @@ def add_book(request, list_id): return HttpResponseBadRequest() return redirect('list', list_id) + + +@require_POST +def remove_book(request, list_id): + ''' put a book on a list ''' + book_list = get_object_or_404(models.List, id=list_id) + item = get_object_or_404(models.ListItem, id=request.POST.get('item')) + + if not book_list.user == request.user and not item.user == request.user: + return HttpResponseNotFound() + + item.delete() + return redirect('list', list_id)