{% extends 'lists/layout.html' %} {% load i18n %} {% load bookwyrm_tags %} {% load markdown %} {% block panel %} {% if request.user == list.user and pending_count %} <div class="block content"> <p> <a href="{% url 'list-curate' list.id %}">{{ pending_count }} book{{ pending_count|pluralize }} awaiting your approval</a> </p> </div> {% endif %} <div class="columns mt-3"> <section class="column is-three-quarters"> {% if request.GET.updated %} <div class="notification is-primary"> {% if list.curation != "open" and request.user != list.user %} {% trans "You successfully suggested a book for this list!" %} {% else %} {% trans "You successfully added a book to this list!" %} {% endif %} </div> {% endif %} {% if not items.object_list.exists %} <p>{% trans "This list is currently empty" %}</p> {% else %} <ol start="{{ items.start_index }}" class="ordered-list"> {% for item in items %} <li class="block mb-5"> <div class="card"> {% with book=item.book %} <div class=" card-content p-0 mb-0 columns is-gapless is-mobile " > <div class="column is-3-mobile is-2-tablet is-cover align to-t"> <a href="{{ item.book.local_path }}" aria-hidden="true"> {% include 'snippets/book_cover.html' with cover_class='is-w-auto is-h-m-tablet is-align-items-flex-start' size='medium' %} </a> </div> <div class="column mx-3 my-2"> <p> {% include 'snippets/book_titleby.html' %} </p> <p> {% include 'snippets/stars.html' with rating=item.book|rating:request.user %} </p> <div> {{ book|book_description|to_markdown|default:""|safe|truncatewords_html:20 }} </div> {% include 'snippets/shelve_button/shelve_button.html' %} </div> </div> {% endwith %} <div class="card-footer is-stacked-mobile has-background-white-bis is-align-items-stretch"> <div class="card-footer-item"> <div> <p>{% blocktrans with username=item.user.display_name user_path=item.user.local_path %}Added by <a href="{{ user_path }}">{{ username }}</a>{% endblocktrans %}</p> </div> </div> {% if list.user == request.user %} <div class="card-footer-item"> <form name="set-position" method="post" action="{% url 'list-set-book-position' item.id %}"> {% csrf_token %} <div class="field has-addons mb-0"> <div class="control"> <label for="input-list-position" class="button is-transparent is-small">{% trans "List position" %}</label> </div> <div class="control"> <input id="input_list_position" class="input is-small" type="number" min="1" name="position" value="{{ item.order }}"> </div> <div class="control"> <button type="submit" class="button is-info is-small is-tablet">{% trans "Set" %}</button> </div> </div> </form> </div> {% endif %} {% if list.user == request.user or list.curation == 'open' and item.user == request.user %} <form name="remove-book" method="post" action="{% url 'list-remove-book' list.id %}" class="card-footer-item"> {% csrf_token %} <input type="hidden" name="item" value="{{ item.id }}"> <button type="submit" class="button is-small is-danger">{% trans "Remove" %}</button> </form> {% endif %} </div> </div> </li> {% endfor %} </ol> {% endif %} {% include "snippets/pagination.html" with page=items %} </section> <section class="column is-one-quarter"> <h2 class="title is-5"> {% trans "Sort List" %} </h2> <form name="sort" action="{% url 'list' list.id %}" method="GET" class="block"> <div class="field"> <label class="label" for="id_sort_by">{% trans "Sort By" %}</label> <div class="select is-fullwidth"> {{ sort_form.sort_by }} </div> </div> <div class="field"> <label class="label" for="id_direction">{% trans "Direction" %}</label> <div class="select is-fullwidth"> {{ sort_form.direction }} </div> </div> <div class="field"> <button class="button is-primary is-fullwidth" type="submit"> {% trans "Sort List" %} </button> </div> </form> {% if request.user.is_authenticated and not list.curation == 'closed' or request.user == list.user %} <h2 class="title is-5 mt-6"> {% if list.curation == 'open' or request.user == list.user %} {% trans "Add Books" %} {% else %} {% trans "Suggest Books" %} {% endif %} </h2> <form name="search" action="{% url 'list' list.id %}" method="GET" class="block"> <div class="field has-addons"> <div class="control"> <input aria-label="{% trans 'Search for a book' %}" class="input" type="text" name="q" placeholder="{% trans 'Search for a book' %}" value="{{ query }}"> </div> <div class="control"> <button class="button" type="submit"> <span class="icon icon-search" title="{% trans 'Search' %}"> <span class="is-sr-only">{% trans "search" %}</span> </span> </button> </div> </div> {% if query %} <p class="help"><a href="{% url 'list' list.id %}">{% trans "Clear search" %}</a></p> {% endif %} </form> {% if not suggested_books %} {% if query %} <p>{% blocktrans %}No books found matching the query "{{ query }}"{% endblocktrans %}</p>{% else %} <p>{% trans "No books found" %}</p> {% endif %} {% endif %} {% if suggested_books|length > 0 %} {% for book in suggested_books %} <div class="columns is-mobile is-gapless"> <a class="column is-2-mobile is-3-tablet is-cover align to-c" href="{{ book.local_path }}" aria-hidden="true" > {% include 'snippets/book_cover.html' with book=book cover_class='is-w-auto is-h-s-mobile align to-t' size='small' %} </a> <div class="column ml-3"> <p>{% include 'snippets/book_titleby.html' with book=book %}</p> <form class="mt-1" name="add-book" method="post" action="{% url 'list-add-book' %}{% if query %}?q={{ query }}{% endif %}" > {% csrf_token %} <input type="hidden" name="book" value="{{ book.id }}"> <input type="hidden" name="list" value="{{ list.id }}"> <button type="submit" class="button is-small is-link">{% if list.curation == 'open' or request.user == list.user %}{% trans "Add" %}{% else %}{% trans "Suggest" %}{% endif %}</button> </form> </div> </div> {% endfor %} {% endif %} {% endif %} </section> </div> {% endblock %}