mirror of
https://github.com/daniviga/django-ram.git
synced 2025-08-04 13:17:50 +02:00
* Add options for a disclaimer, fix html code and remove deprecations * Update READMEs * Minor improvement to portal admin [skip ci]
191 lines
8.9 KiB
HTML
191 lines
8.9 KiB
HTML
{% extends 'base.html' %}
|
|
{% load dynamic_url %}
|
|
|
|
{% block header %}
|
|
{% if book.tags.all %}
|
|
<p><small>Tags:</small>
|
|
{% for t in book.tags.all %}<a href="{% url 'filtered' _filter="tag" search=t.slug %}" class="badge rounded-pill bg-primary">
|
|
{{ t.name }}</a>{# new line is required #}
|
|
{% endfor %}
|
|
</p>
|
|
{% endif %}
|
|
<small class="text-body-secondary">Updated {{ book.updated_time | date:"M d, Y H:i" }}</small>
|
|
{% endblock %}
|
|
{% block carousel %}
|
|
<div class="row">
|
|
<div id="carouselControls" class="carousel carousel-dark slide" data-bs-ride="carousel" data-bs-interval="10000">
|
|
<div class="carousel-inner">
|
|
{% for t in book.image.all %}
|
|
{% if forloop.first %}
|
|
<div class="carousel-item active">
|
|
{% else %}
|
|
<div class="carousel-item">
|
|
{% endif %}
|
|
<img src="{{ t.image.url }}" class="d-block w-100 rounded img-thumbnail" alt="...">
|
|
</div>
|
|
{% endfor %}
|
|
</div>
|
|
{% if book.image.count > 1 %}
|
|
<button class="carousel-control-prev" type="button" data-bs-target="#carouselControls" data-bs-slide="prev">
|
|
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
|
|
<span class="visually-hidden"><i class="bi bi-chevron-left"></i></span>
|
|
</button>
|
|
<button class="carousel-control-next" type="button" data-bs-target="#carouselControls" data-bs-slide="next">
|
|
<span class="carousel-control-next-icon" aria-hidden="true"></span>
|
|
<span class="visually-hidden"><i class="bi bi-chevron-right"></i></span>
|
|
</button>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
{% endblock %}
|
|
{% block cards %}
|
|
{% endblock %}
|
|
{% block extra_content %}
|
|
<section class="py-4 text-start container">
|
|
<div class="row">
|
|
<div class="mx-auto">
|
|
<nav class="nav nav-tabs d-none d-lg-flex flex-row mb-2" id="nav-tab" role="tablist">
|
|
<button class="nav-link active" id="nav-summary-tab" data-bs-toggle="tab" data-bs-target="#nav-summary" type="button" role="tab" aria-controls="nav-summary" aria-selected="true">Summary</button>
|
|
{% if documents %}<button class="nav-link" id="nav-documents-tab" data-bs-toggle="tab" data-bs-target="#nav-documents" type="button" role="tab" aria-controls="nav-documents" aria-selected="false">Documents</button>{% endif %}
|
|
</nav>
|
|
<select class="form-select d-lg-none mb-2" id="tabSelector" aria-label="Tab selector">
|
|
<option value="nav-summary" selected>Summary</option>
|
|
{% if documents %}<option value="nav-documents">Documents</option>{% endif %}
|
|
</select>
|
|
<div class="tab-content" id="nav-tabContent">
|
|
<div class="tab-pane show active" id="nav-summary" role="tabpanel" aria-labelledby="nav-summary-tab">
|
|
<table class="table table-striped">
|
|
<thead>
|
|
<tr>
|
|
<th colspan="2" scope="row">
|
|
{% if type == "catalog" %}Catalog
|
|
{% elif type == "book" %}Book{% endif %}
|
|
<div class="float-end">
|
|
{% if not book.published %}
|
|
<span class="badge text-bg-warning">Draft</span>
|
|
{% endif %}
|
|
</div>
|
|
</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody class="table-group-divider">
|
|
{% if type == "catalog" %}
|
|
<tr>
|
|
<th class="w-33" scope="row">Manufacturer</th>
|
|
<td>{{ book.manufacturer }}</td>
|
|
</tr>
|
|
<tr>
|
|
<th class="w-33" scope="row">Scales</th>
|
|
<td>{{ book.get_scales }}</td>
|
|
</tr>
|
|
{% elif type == "book" %}
|
|
<tr>
|
|
<th class="w-33" scope="row">Title</th>
|
|
<td>{{ book.title }}</td>
|
|
</tr>
|
|
<tr>
|
|
<th class="w-33" scope="row">Authors</th>
|
|
<td>
|
|
<ul class="mb-0 list-unstyled">{% for a in book.authors.all %}<li>{{ a }}</li>{% endfor %}</ul>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th class="w-33" scope="row">Publisher</th>
|
|
<td>{{ book.publisher }}</td>
|
|
</tr>
|
|
{% endif %}
|
|
<tr>
|
|
<th scope="row">ISBN</th>
|
|
<td>{{ book.ISBN|default:"-" }}</td>
|
|
</tr>
|
|
<tr>
|
|
<th scope="row">Language</th>
|
|
<td>{{ book.get_language_display }}</td>
|
|
</tr>
|
|
<tr>
|
|
<th scope="row">Number of pages</th>
|
|
<td>{{ book.number_of_pages|default:"-" }}</td>
|
|
</tr>
|
|
<tr>
|
|
<th scope="row">Publication year</th>
|
|
<td>{{ book.publication_year|default:"-" }}</td>
|
|
</tr>
|
|
{% if book.description %}
|
|
<tr>
|
|
<th class="w-33" scope="row">Description</th>
|
|
<td>{{ book.description | safe }}</td>
|
|
</tr>
|
|
{% endif %}
|
|
</tbody>
|
|
</table>
|
|
{% if request.user.is_staff %}
|
|
<table class="table table-striped">
|
|
<thead>
|
|
<tr>
|
|
<th colspan="2" scope="row">Purchase</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody class="table-group-divider">
|
|
<tr>
|
|
<th class="w-33" scope="row">Shop</th>
|
|
<td>
|
|
{{ book.shop|default:"-" }}
|
|
{% if book.shop.website %} <a href="{{ book.shop.website }}" target="_blank"><i class="bi bi-box-arrow-up-right"></i></a>{% endif %}
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th class="w-33" scope="row">Purchase date</th>
|
|
<td>{{ book.purchase_date|default:"-" }}</td>
|
|
</tr>
|
|
<tr>
|
|
<th scope="row">Price ({{ site_conf.currency }})</th>
|
|
<td>{{ book.price|default:"-" }}</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
{% endif %}
|
|
{% if properties %}
|
|
<table class="table table-striped">
|
|
<thead>
|
|
<tr>
|
|
<th colspan="2" scope="row">Properties</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody class="table-group-divider">
|
|
{% for p in properties %}
|
|
<tr>
|
|
<th class="w-33" scope="row">{{ p.property }}</th>
|
|
<td>{{ p.value }}</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
{% endif %}
|
|
</div>
|
|
<div class="tab-pane" id="nav-documents" role="tabpanel" aria-labelledby="nav-documents-tab">
|
|
<table class="table table-striped">
|
|
<thead>
|
|
<tr>
|
|
<th colspan="3" scope="row">Documents</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody class="table-group-divider">
|
|
{% for d in documents.all %}
|
|
<tr>
|
|
<td class="w-33">{{ d.description }}</td>
|
|
<td><a href="{{ d.file.url }}" target="_blank">{{ d.filename }}</a></td>
|
|
<td class="text-end">{{ d.file.size | filesizeformat }}</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
<div class="d-grid gap-2 d-md-flex justify-content-md-end">
|
|
{% if request.user.is_staff %}<a class="btn btn-sm btn-outline-danger" href="{% dynamic_admin_url 'bookshelf' type book.pk %}">Edit</a>{% endif %}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
{% endblock %}
|