diff --git a/bookwyrm/models/list.py b/bookwyrm/models/list.py index a05325f3..880c4122 100644 --- a/bookwyrm/models/list.py +++ b/bookwyrm/models/list.py @@ -1,6 +1,7 @@ """ make a list of books!! """ from django.apps import apps from django.db import models +from django.utils import timezone from bookwyrm import activitypub from bookwyrm.settings import DOMAIN @@ -79,6 +80,10 @@ class ListItem(CollectionItemMixin, BookWyrmModel): """ create a notification too """ created = not bool(self.id) super().save(*args, **kwargs) + # tick the updated date on the parent list + self.book_list.updated_date = timezone.now() + self.book_list.save(broadcast=False) + list_owner = self.book_list.user # create a notification if somoene ELSE added to a local user's list if created and list_owner.local and list_owner != self.user: diff --git a/bookwyrm/templates/lists/list_items.html b/bookwyrm/templates/lists/list_items.html index 04e7f014..3e3e8bf4 100644 --- a/bookwyrm/templates/lists/list_items.html +++ b/bookwyrm/templates/lists/list_items.html @@ -14,7 +14,13 @@ {% endfor %}
- {% if list.description %}{{ list.description | to_markdown | safe | truncatewords_html:20 }}{% endif %} +
+ {% if list.description %} + {{ list.description|to_markdown|safe|truncatechars_html:30 }} + {% else %} +   + {% endif %} +

{% include 'lists/created_text.html' with list=list %}

diff --git a/bookwyrm/templates/lists/lists.html b/bookwyrm/templates/lists/lists.html index f7ab020a..a9258305 100644 --- a/bookwyrm/templates/lists/lists.html +++ b/bookwyrm/templates/lists/lists.html @@ -1,17 +1,19 @@ {% extends 'layout.html' %} +{% load bookwyrm_tags %} {% load i18n %} {% block title %}{% trans "Lists" %}{% endblock %} {% block content %} -
-

{% trans "Lists" %}

-
-{% if request.user.is_authenticated and not lists.has_previous %}
-

{% trans "Your lists" %}

+

+ {% trans "Lists" %} + {% if request.user.is_authenticated %} + Your lists + {% endif %} +

{% trans "Create List" as button_text %} @@ -23,23 +25,11 @@ {% include 'lists/create_form.html' with controls_text="create-list" %}
-
- {% if request.user.list_set.exists %} - {% include 'lists/list_items.html' with lists=request.user.list_set.all|slice:4 %} - {% endif %} - - {% if request.user.list_set.count > 4 %} - {% blocktrans with size=request.user.list_set.count %}See all {{ size }} lists{% endblocktrans %} - {% endif %} -
-{% endif %} - - {% if lists %}
-

{% trans "Recent Lists" %}

{% include 'lists/list_items.html' with lists=lists %}
+
{% include 'snippets/pagination.html' with page=lists path=path %}
diff --git a/bookwyrm/views/list.py b/bookwyrm/views/list.py index 91475d48..7724cd13 100644 --- a/bookwyrm/views/list.py +++ b/bookwyrm/views/list.py @@ -27,17 +27,17 @@ class Lists(View): except ValueError: page = 1 - user = request.user if request.user.is_authenticated else None # hide lists with no approved books lists = ( - models.List.objects.filter( - ~Q(user=user), + models.List.objects.annotate( + item_count=Count("listitem", filter=Q(listitem__approved=True)) ) - .annotate(item_count=Count("listitem", filter=Q(listitem__approved=True))) .filter(item_count__gt=0) + .order_by("-updated_date") .distinct() .all() ) + lists = privacy_filter( request.user, lists, privacy_levels=["public", "followers"] )