From f0a936f15ebfd5d73527ac3105341d35f2e82074 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Mon, 15 Mar 2021 14:44:03 -0700 Subject: [PATCH 1/3] Add books to lists from the book page --- bookwyrm/templates/book.html | 22 +++++++++++++++++++++- bookwyrm/templates/lists/list.html | 3 ++- bookwyrm/urls.py | 2 +- bookwyrm/views/list.py | 6 +++--- 4 files changed, 27 insertions(+), 6 deletions(-) diff --git a/bookwyrm/templates/book.html b/bookwyrm/templates/book.html index ee1ea270..a96c6096 100644 --- a/bookwyrm/templates/book.html +++ b/bookwyrm/templates/book.html @@ -233,7 +233,7 @@ {% endif %} - {% if lists.exists %} + {% if lists.exists or request.user.list_set.exists %}

{% trans "Lists" %}

+ + {% if request.user.list_set.exists %} +
+ {% csrf_token %} + + +
+
+ +
+
+ +
+
+
+ {% endif %}
{% endif %} diff --git a/bookwyrm/templates/lists/list.html b/bookwyrm/templates/lists/list.html index ddac04f3..b4f3e5de 100644 --- a/bookwyrm/templates/lists/list.html +++ b/bookwyrm/templates/lists/list.html @@ -83,9 +83,10 @@

{% include 'snippets/book_titleby.html' with book=book %}

-
+ {% csrf_token %} +
diff --git a/bookwyrm/urls.py b/bookwyrm/urls.py index 3ef2a79b..05382e93 100644 --- a/bookwyrm/urls.py +++ b/bookwyrm/urls.py @@ -118,7 +118,7 @@ urlpatterns = [ re_path(r"^list/?$", views.Lists.as_view(), name="lists"), re_path(r"^list/(?P\d+)(.json)?/?$", views.List.as_view(), name="list"), re_path( - r"^list/(?P\d+)/add/?$", views.list.add_book, name="list-add-book" + r"^list/add-book/?$", views.list.add_book, name="list-add-book" ), re_path( r"^list/(?P\d+)/remove/?$", diff --git a/bookwyrm/views/list.py b/bookwyrm/views/list.py index ba3200d1..eb82a0f1 100644 --- a/bookwyrm/views/list.py +++ b/bookwyrm/views/list.py @@ -173,9 +173,9 @@ class Curate(View): @require_POST -def add_book(request, list_id): +def add_book(request): """ put a book on a list """ - book_list = get_object_or_404(models.List, id=list_id) + book_list = get_object_or_404(models.List, id=request.POST.get('list')) if not object_visible_to_user(request.user, book_list): return HttpResponseNotFound() @@ -204,7 +204,7 @@ def add_book(request, list_id): # if the book is already on the list, don't flip out pass - return redirect("list", list_id) + return redirect("list", book_list.id) @require_POST From b1335d28111c82606503b8cf4a78b546edb51cf4 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Mon, 15 Mar 2021 15:33:05 -0700 Subject: [PATCH 2/3] Formatting --- bookwyrm/urls.py | 4 +--- bookwyrm/views/list.py | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/bookwyrm/urls.py b/bookwyrm/urls.py index 05382e93..199827ae 100644 --- a/bookwyrm/urls.py +++ b/bookwyrm/urls.py @@ -117,9 +117,7 @@ urlpatterns = [ # lists re_path(r"^list/?$", views.Lists.as_view(), name="lists"), re_path(r"^list/(?P\d+)(.json)?/?$", views.List.as_view(), name="list"), - re_path( - r"^list/add-book/?$", views.list.add_book, name="list-add-book" - ), + re_path(r"^list/add-book/?$", views.list.add_book, name="list-add-book"), re_path( r"^list/(?P\d+)/remove/?$", views.list.remove_book, diff --git a/bookwyrm/views/list.py b/bookwyrm/views/list.py index eb82a0f1..91475d48 100644 --- a/bookwyrm/views/list.py +++ b/bookwyrm/views/list.py @@ -175,7 +175,7 @@ class Curate(View): @require_POST def add_book(request): """ put a book on a list """ - book_list = get_object_or_404(models.List, id=request.POST.get('list')) + book_list = get_object_or_404(models.List, id=request.POST.get("list")) if not object_visible_to_user(request.user, book_list): return HttpResponseNotFound() From 0037a22cb63da0b799fe6d27055e03d32bae5624 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Mon, 15 Mar 2021 15:41:11 -0700 Subject: [PATCH 3/3] Updates list tests --- bookwyrm/tests/views/test_list.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/bookwyrm/tests/views/test_list.py b/bookwyrm/tests/views/test_list.py index cc895ad1..c2c75453 100644 --- a/bookwyrm/tests/views/test_list.py +++ b/bookwyrm/tests/views/test_list.py @@ -271,11 +271,12 @@ class ListViews(TestCase): "", { "book": self.book.id, + "list": self.list.id, }, ) request.user = self.local_user - views.list.add_book(request, self.list.id) + views.list.add_book(request) item = self.list.listitem_set.get() self.assertEqual(item.book, self.book) self.assertEqual(item.user, self.local_user) @@ -300,11 +301,12 @@ class ListViews(TestCase): "", { "book": self.book.id, + "list": self.list.id, }, ) request.user = self.rat - views.list.add_book(request, self.list.id) + views.list.add_book(request) item = self.list.listitem_set.get() self.assertEqual(item.book, self.book) self.assertEqual(item.user, self.rat) @@ -330,11 +332,12 @@ class ListViews(TestCase): "", { "book": self.book.id, + "list": self.list.id, }, ) request.user = self.rat - views.list.add_book(request, self.list.id) + views.list.add_book(request) item = self.list.listitem_set.get() self.assertEqual(item.book, self.book) self.assertEqual(item.user, self.rat) @@ -360,11 +363,12 @@ class ListViews(TestCase): "", { "book": self.book.id, + "list": self.list.id, }, ) request.user = self.local_user - views.list.add_book(request, self.list.id) + views.list.add_book(request) item = self.list.listitem_set.get() self.assertEqual(item.book, self.book) self.assertEqual(item.user, self.local_user)