diff --git a/bookwyrm/tests/models/test_list.py b/bookwyrm/tests/models/test_list.py
index bca63e16..ba90d961 100644
--- a/bookwyrm/tests/models/test_list.py
+++ b/bookwyrm/tests/models/test_list.py
@@ -16,7 +16,7 @@ class List(TestCase):
def test_remote_id(self):
''' shelves use custom remote ids '''
- expected_id = 'https://%s/user/mouse/list/%d' % \
+ expected_id = 'https://%s/list/%d' % \
(settings.DOMAIN, self.list.id)
self.assertEqual(self.list.get_remote_id(), expected_id)
diff --git a/bookwyrm/urls.py b/bookwyrm/urls.py
index 91bbfa8e..3d6a37da 100644
--- a/bookwyrm/urls.py
+++ b/bookwyrm/urls.py
@@ -88,7 +88,10 @@ 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/(?P\d+)(.json)?/?$',
+ views.List.as_view(), name='list'),
+ re_path(r'^list/(?P\d+)/add/?$',
+ views.List.as_view(), name='list-add-book'),
# preferences
re_path(r'^preferences/profile/?$', views.EditUser.as_view()),
diff --git a/bookwyrm/views/list.py b/bookwyrm/views/list.py
index ccc6c8c8..b4da1a87 100644
--- a/bookwyrm/views/list.py
+++ b/bookwyrm/views/list.py
@@ -51,8 +51,15 @@ class List(View):
if is_api_request(request):
return ActivitypubResponse(book_list.to_activity())
+
+ suggestions = request.user.shelfbook_set.all().filter(
+ ~Q(book__in=book_list.books)
+ )
+
data = {
- 'list': book_list
+ 'title': '%s | Lists' % book_list.name,
+ 'list': book_list,
+ 'suggested_books': [s.book for s in suggestions[:5]],
}
return TemplateResponse(request, 'lists/list.html', data)
@@ -60,6 +67,6 @@ class List(View):
@method_decorator(login_required, name='dispatch')
# pylint: disable=unused-argument
def post(self, request, list_id):
- ''' create a book_list '''
+ ''' edit a book_list '''
book_list = get_object_or_404(models.List, id=list_id)
return redirect(book_list.local_path)