moviewyrm/bookwyrm/templates/book.html

257 lines
11 KiB
HTML
Raw Normal View History

2020-01-28 02:47:54 +00:00
{% extends 'layout.html' %}
2020-12-13 02:25:04 +00:00
{% load bookwyrm_tags %}
{% load humanize %}
2020-01-28 02:47:54 +00:00
{% block content %}
2020-09-29 18:00:54 +00:00
<div class="block">
2020-12-17 22:11:24 +00:00
<div class="columns">
<div class="column">
<h1 class="title">
{{ book.title }}{% if book.subtitle %}:
<small>{{ book.subtitle }}</small>{% endif %}
2021-01-05 00:33:45 +00:00
{% if book.series %}
<small class="has-text-grey-dark">({{ book.series }}{% if book.series_number %} #{{ book.series_number }}{% endif %})</small><br>
{% endif %}
2021-01-05 01:42:02 +00:00
</h1>
{% if book.authors %}
<h2 class="subtitle">
2020-12-17 22:11:24 +00:00
by {% include 'snippets/authors.html' with book=book %}
</h2>
{% endif %}
</div>
2020-09-29 18:00:54 +00:00
2020-10-01 20:09:37 +00:00
{% if request.user.is_authenticated and perms.bookwyrm.edit_book %}
2020-12-17 22:11:24 +00:00
<div class="column is-narrow">
2020-11-05 20:05:29 +00:00
<a href="{{ book.id }}/edit">
2021-01-14 22:13:23 +00:00
<span class="icon icon-pencil" title="Edit Book">
2020-09-30 22:10:37 +00:00
<span class="is-sr-only">Edit Book</span>
2020-09-30 03:36:43 +00:00
</span>
</a>
</div>
{% endif %}
2020-09-29 18:00:54 +00:00
</div>
<div class="columns">
2020-09-30 03:36:43 +00:00
<div class="column is-narrow">
{% include 'snippets/book_cover.html' with book=book size=large %}
{% include 'snippets/rate_action.html' with user=request.user book=book %}
2020-03-27 15:36:57 +00:00
{% include 'snippets/shelve_button.html' %}
2020-03-28 22:06:16 +00:00
{% if request.user.is_authenticated and not book.cover %}
2020-11-06 20:27:52 +00:00
<div class="box p-2">
2021-01-18 01:09:43 +00:00
<h3 class="title is-6 mb-1">Add cover</h3>
2020-11-11 05:34:26 +00:00
<form name="add-cover" method="POST" action="/upload-cover/{{ book.id }}" enctype="multipart/form-data">
2020-11-06 20:27:52 +00:00
{% csrf_token %}
2021-01-18 01:09:43 +00:00
<div class="field has-addons">
<div class="control">
<div class="file is-small mb-1">
<label class="file-label">
<input class="file-input" type="file" name="cover" accept="image/*" enctype="multipart/form-data" id="id_cover" required>
<span class="file-cta">
<span class="file-icon">
<i class="fas fa-upload"></i>
</span>
<span class="file-label">
Choose file...
</span>
</span>
</label>
</div>
</div>
<div class="control">
<button class="button is-small is-primary" type="submit">Add</button>
</div>
2020-11-06 20:27:52 +00:00
</div>
</form>
</div>
2020-03-28 22:06:16 +00:00
{% endif %}
2020-04-02 02:38:07 +00:00
2021-01-05 01:42:02 +00:00
<section class="content">
<dl>
{% if book.isbn_13 %}
<div class="is-flex is-justify-content-space-between">
<dt>ISBN:</dt>
<dd>{{ book.isbn_13 }}</dd>
</div>
{% endif %}
{% if book.oclc_number %}
<div class="is-flex is-justify-content-space-between">
<dt>OCLC Number:</dt>
<dd>{{ book.oclc_number }}</dd>
</div>
{% endif %}
{% if book.asin %}
<div class="is-flex is-justify-content-space-between">
<dt>ASIN:</dt>
<dd>{{ book.asin }}</dd>
</div>
{% endif %}
</dl>
<p>
{% if book.physical_format %}{{ book.physical_format | title }}{% if book.pages %},<br>{% endif %}{% endif %}
{% if book.pages %}{{ book.pages }} pages{% endif %}
</p>
{% if book.openlibrary_key %}
<p><a href="https://openlibrary.org/books/{{ book.openlibrary_key }}" target="_blank" rel="noopener">View on OpenLibrary</a></p>
2020-04-02 02:38:07 +00:00
{% endif %}
2021-01-05 01:42:02 +00:00
</section>
2020-03-28 22:06:16 +00:00
</div>
2020-04-02 02:38:07 +00:00
2020-09-30 03:36:43 +00:00
<div class="column">
2020-09-29 18:00:54 +00:00
<div class="block">
2021-01-05 01:59:46 +00:00
<h3 class="field is-grouped">{% include 'snippets/stars.html' with rating=rating %} ({{ review_count }} review{{ reviews|length|pluralize }})</h3>
2020-04-02 02:38:07 +00:00
2020-11-12 19:40:20 +00:00
{% include 'snippets/trimmed_text.html' with full=book|book_description %}
2020-04-02 02:38:07 +00:00
{% if request.user.is_authenticated and perms.bookwyrm.edit_book and not book|book_description %}
{% include 'snippets/toggle/open_button.html' with text="Add description" controls_text="add-description" controls_uid=book.id focus="id_description" hide_active=True id="hide-description" %}
<div class="box hidden" id="add-description-{{ book.id }}">
<form name="add-description" method="POST" action="/add-description/{{ book.id }}">
{% csrf_token %}
<p class="fields is-grouped">
<label class="label"for="id_description">Description:</label>
<textarea name="description" cols="None" rows="None" class="textarea" id="id_description"></textarea>
</p>
<div class="field">
<button class="button is-primary" type="submit">Save</button>
{% include 'snippets/toggle/close_button.html' with text="Cancel" controls_text="add-description" controls_uid=book.id hide_inactive=True %}
2020-11-28 15:55:31 +00:00
</div>
</form>
2020-11-28 15:55:31 +00:00
</div>
{% endif %}
2020-12-08 17:43:12 +00:00
{% if book.parent_work.editions.count > 1 %}
<p><a href="/book/{{ book.parent_work.id }}/editions">{{ book.parent_work.editions.count }} editions</a></p>
2020-09-29 18:00:54 +00:00
{% endif %}
</div>
2020-04-02 02:38:07 +00:00
{# user's relationship to the book #}
2021-01-07 02:34:21 +00:00
<div class="block">
{% for shelf in user_shelves %}
<p>
2020-12-20 02:54:56 +00:00
This edition is on your <a href="/user/{{ user.localname }}/shelf/{{ shelf.shelf.identifier }}">{{ shelf.shelf.name }}</a> shelf.
{% include 'snippets/shelf_selector.html' with current=shelf.shelf %}
</p>
{% endfor %}
{% for shelf in other_edition_shelves %}
<p>
2020-12-20 02:54:56 +00:00
A <a href="/book/{{ shelf.book.id }}">different edition</a> of this book is on your <a href="/user/{{ user.localname }}/shelf/{{ shelf.shelf.identifier }}">{{ shelf.shelf.name }}</a> shelf.
2020-12-12 00:57:38 +00:00
{% include 'snippets/switch_edition_button.html' with edition=book %}
</p>
{% endfor %}
2021-01-07 02:34:21 +00:00
</div>
2020-11-06 20:51:49 +00:00
2021-01-07 02:34:21 +00:00
{% if readthroughs.exists %}
<div>
<h2 class="title is-5">Your reading activity</h2>
{% for readthrough in readthroughs %}
{% include 'snippets/readthrough.html' with readthrough=readthrough %}
{% endfor %}
2020-11-06 20:51:49 +00:00
</div>
2021-01-07 02:34:21 +00:00
{% endif %}
2021-01-10 18:35:28 +00:00
<div class="block">
{% include 'snippets/toggle/open_button.html' with text="Add read dates" controls_text="add-readthrough" %}
<div class="hidden box" id="add-readthrough">
<form name="add-readthrough" action="/create-readthrough" method="post">
{% include 'snippets/readthrough_form.html' with readthrough=None %}
<div class="field is-grouped">
<button class="button is-primary" type="submit">Create</button>
{% include 'snippets/toggle/close_button.html' with text="Cancel" controls_text="add-readthrough" %}
</div>
</form>
2021-01-10 18:35:28 +00:00
</div>
</div>
2020-10-29 19:32:37 +00:00
2020-04-04 20:12:15 +00:00
{% if request.user.is_authenticated %}
<div class="box">
{% include 'snippets/create_status.html' with book=book hide_cover=True %}
2020-04-02 02:38:07 +00:00
</div>
2020-04-04 20:12:15 +00:00
2020-09-29 18:00:54 +00:00
<div class="block">
2020-04-04 20:12:15 +00:00
<form name="tag" action="/tag/" method="post">
<label for="tags" class="is-3">Tags</label>
2020-04-04 20:12:15 +00:00
{% csrf_token %}
2020-05-04 00:53:14 +00:00
<input type="hidden" name="book" value="{{ book.id }}">
<input id="tags" class="input" type="text" name="name">
2020-09-29 18:00:54 +00:00
<button class="button" type="submit">Add tag</button>
2020-04-04 20:12:15 +00:00
</form>
</div>
2020-09-29 18:00:54 +00:00
{% endif %}
<div class="block">
2020-09-29 21:11:55 +00:00
<div class="field is-grouped is-grouped-multiline">
2020-04-04 20:12:15 +00:00
{% for tag in tags %}
{% include 'snippets/tag.html' with book=book tag=tag user_tags=user_tags %}
{% endfor %}
2020-09-29 21:11:55 +00:00
</div>
2020-04-04 20:12:15 +00:00
</div>
2020-04-12 04:49:06 +00:00
</div>
2021-01-05 01:42:02 +00:00
<div class="column is-narrow">
{% if book.subjects %}
<section class="content block">
<h2 class="title is-5">Subjects</h2>
<ul>
{% for subject in book.subjects %}
<li>{{ subject }}</li>
{% endfor %}
</ul>
</section>
{% endif %}
{% if book.subject_places %}
<section class="content block">
<h2 class="title is-5">Places</h2>
<ul>
{% for place in book.subject_placess %}
<li>{{ place }}</li>
{% endfor %}
</ul>
</section>
{% endif %}
</div>
</div>
2020-03-17 00:19:38 +00:00
</div>
<div class="block" id="reviews">
2020-09-29 20:11:52 +00:00
{% for review in reviews %}
<div class="block">
{% include 'snippets/status.html' with status=review hide_book=True depth=1 %}
</div>
{% endfor %}
<div class="block is-flex is-flex-wrap-wrap">
{% for rating in ratings %}
<div class="block mr-5">
<div class="media">
<div class="media-left">{% include 'snippets/avatar.html' with user=rating.user %}</div>
<div class="media-content">
<div>
{% include 'snippets/username.html' with user=rating.user %}
</div>
<div class="field is-grouped mb-0">
<div>rated it</div>
{% include 'snippets/stars.html' with rating=rating.rating %}
</div>
<div>
<a href="{{ rating.remote_id }}">{{ rating.published_date | naturaltime }}</a>
</div>
</div>
</div>
</div>
{% endfor %}
</div>
<div class="block">
{% include 'snippets/pagination.html' with page=reviews path=book.local_path anchor="#reviews" %}
</div>
2020-03-17 00:19:38 +00:00
</div>
2020-01-28 02:47:54 +00:00
{% endblock %}