2020-04-21 14:09:21 +00:00
|
|
|
{% extends 'layout.html' %}
|
2021-02-28 02:48:10 +00:00
|
|
|
{% load i18n %}
|
2020-12-13 02:25:04 +00:00
|
|
|
{% load bookwyrm_tags %}
|
2020-04-21 14:09:21 +00:00
|
|
|
{% load humanize %}
|
2021-02-28 18:00:36 +00:00
|
|
|
|
|
|
|
{% block title %}{% trans "Import Status" %}{% endblock %}
|
|
|
|
|
2021-03-05 14:41:21 +00:00
|
|
|
{% block content %}{% spaceless %}
|
2020-09-30 19:11:53 +00:00
|
|
|
<div class="block">
|
2021-02-27 22:22:39 +00:00
|
|
|
<h1 class="title">{% trans "Import Status" %}</h1>
|
2020-04-21 14:09:21 +00:00
|
|
|
|
2020-09-30 19:11:53 +00:00
|
|
|
<p>
|
2021-02-28 16:42:25 +00:00
|
|
|
{% trans "Import started:" %} {{ job.created_date | naturaltime }}
|
2020-11-12 20:09:47 +00:00
|
|
|
</p>
|
2021-01-07 16:08:12 +00:00
|
|
|
{% if job.complete %}
|
2020-09-30 19:11:53 +00:00
|
|
|
<p>
|
2021-02-28 16:42:25 +00:00
|
|
|
{% trans "Import completed:" %} {{ task.date_done | naturaltime }}
|
2020-11-12 20:09:47 +00:00
|
|
|
</p>
|
|
|
|
{% elif task.failed %}
|
2021-02-27 22:22:39 +00:00
|
|
|
<div class="notification is-danger">{% trans "TASK FAILED" %}</div>
|
2020-09-30 19:11:53 +00:00
|
|
|
{% endif %}
|
|
|
|
</div>
|
2020-04-22 13:16:46 +00:00
|
|
|
|
2020-09-30 19:11:53 +00:00
|
|
|
<div class="block">
|
2021-01-07 17:36:41 +00:00
|
|
|
{% if not job.complete %}
|
2021-02-27 22:22:39 +00:00
|
|
|
{% trans "Import still in progress." %}
|
2020-09-30 19:11:53 +00:00
|
|
|
<p>
|
2021-02-27 22:22:39 +00:00
|
|
|
{% trans "(Hit reload to update!)" %}
|
2020-11-12 20:09:47 +00:00
|
|
|
</p>
|
2020-09-30 19:11:53 +00:00
|
|
|
{% endif %}
|
|
|
|
</div>
|
2020-04-21 14:09:21 +00:00
|
|
|
|
2020-11-12 21:52:57 +00:00
|
|
|
{% if failed_items %}
|
2020-09-30 19:11:53 +00:00
|
|
|
<div class="block">
|
2021-02-27 22:22:39 +00:00
|
|
|
<h2 class="title is-4">{% trans "Failed to load" %}</h2>
|
2020-11-13 17:02:41 +00:00
|
|
|
{% if not job.retry %}
|
2021-01-12 19:28:03 +00:00
|
|
|
<form name="retry" action="/import/{{ job.id }}" method="post">
|
2020-11-13 17:02:41 +00:00
|
|
|
{% csrf_token %}
|
2021-03-05 14:41:21 +00:00
|
|
|
|
|
|
|
{% with failed_count=failed_items|length %}
|
2021-03-05 21:09:56 +00:00
|
|
|
{% if failed_count > 10 %}
|
|
|
|
<p class="block">
|
|
|
|
<a href="#select-all-failed-imports">
|
|
|
|
{% blocktrans %}Jump to the bottom of the list to select the {{ failed_count }} items which failed to import.{% endblocktrans %}
|
|
|
|
</a>
|
|
|
|
</p>
|
|
|
|
{% endif %}
|
2021-03-05 14:41:21 +00:00
|
|
|
{% endwith %}
|
|
|
|
|
|
|
|
<fieldset id="failed-imports">
|
|
|
|
<ul>
|
2020-11-13 17:02:41 +00:00
|
|
|
{% for item in failed_items %}
|
|
|
|
<li class="pb-1">
|
|
|
|
<input class="checkbox" type="checkbox" name="import_item" value="{{ item.id }}" id="import-item-{{ item.id }}">
|
|
|
|
<label for="import-item-{{ item.id }}">
|
|
|
|
Line {{ item.index }}:
|
|
|
|
<strong>{{ item.data|dict_key:'Title' }}</strong> by
|
|
|
|
{{ item.data|dict_key:'Author' }}
|
|
|
|
</label>
|
|
|
|
<p>
|
|
|
|
{{ item.fail_reason }}.
|
|
|
|
</p>
|
|
|
|
</li>
|
|
|
|
{% endfor %}
|
2021-03-05 14:41:21 +00:00
|
|
|
</ul>
|
|
|
|
</fieldset>
|
|
|
|
|
|
|
|
<fieldset class="mt-3">
|
|
|
|
<a name="select-all-failed-imports"></a>
|
|
|
|
|
2021-03-05 21:09:56 +00:00
|
|
|
<label class="label is-inline">
|
2021-03-05 14:41:21 +00:00
|
|
|
<input
|
|
|
|
id="toggle-all-checkboxes-failed-imports"
|
|
|
|
class="checkbox"
|
|
|
|
type="checkbox"
|
|
|
|
data-action="toggle-all"
|
|
|
|
data-target="failed-imports"
|
|
|
|
/>
|
2021-02-27 22:22:39 +00:00
|
|
|
{% trans "Select all" %}
|
2020-11-13 18:14:24 +00:00
|
|
|
</label>
|
2021-03-05 14:41:21 +00:00
|
|
|
|
2021-03-05 21:09:56 +00:00
|
|
|
<button class="button is-block mt-3" type="submit">{% trans "Retry items" %}</button>
|
2021-03-05 14:41:21 +00:00
|
|
|
</fieldset>
|
|
|
|
|
|
|
|
<hr>
|
|
|
|
|
2020-11-13 17:02:41 +00:00
|
|
|
{% else %}
|
|
|
|
<ul>
|
|
|
|
{% for item in failed_items %}
|
|
|
|
<li class="pb-1">
|
|
|
|
<p>
|
|
|
|
Line {{ item.index }}:
|
|
|
|
<strong>{{ item.data|dict_key:'Title' }}</strong> by
|
|
|
|
{{ item.data|dict_key:'Author' }}
|
|
|
|
</p>
|
|
|
|
<p>
|
|
|
|
{{ item.fail_reason }}.
|
|
|
|
</p>
|
|
|
|
</li>
|
|
|
|
{% endfor %}
|
|
|
|
</ul>
|
|
|
|
{% endif %}
|
|
|
|
</form>
|
2020-11-12 21:52:57 +00:00
|
|
|
</div>
|
|
|
|
{% endif %}
|
|
|
|
|
|
|
|
<div class="block">
|
2021-02-27 22:22:39 +00:00
|
|
|
<h2 class="title is-4">{% trans "Successfully imported" %}</h2>
|
2020-09-30 19:11:53 +00:00
|
|
|
<table class="table">
|
|
|
|
<tr>
|
|
|
|
<th>
|
2021-02-27 22:22:39 +00:00
|
|
|
{% trans "Book" %}
|
2020-09-30 19:11:53 +00:00
|
|
|
</th>
|
|
|
|
<th>
|
2021-02-27 22:22:39 +00:00
|
|
|
{% trans "Title" %}
|
2020-09-30 19:11:53 +00:00
|
|
|
</th>
|
|
|
|
<th>
|
2021-02-27 22:22:39 +00:00
|
|
|
{% trans "Author" %}
|
2020-09-30 19:11:53 +00:00
|
|
|
</th>
|
|
|
|
<th>
|
|
|
|
</th>
|
|
|
|
</tr>
|
|
|
|
{% for item in items %}
|
|
|
|
<tr>
|
|
|
|
<td>
|
|
|
|
{% if item.book %}
|
2021-05-04 16:34:16 +00:00
|
|
|
<a href="{{ item.book.local_path }}">
|
2021-04-27 12:58:30 +00:00
|
|
|
{% include 'snippets/book_cover.html' with book=item.book cover_class='is-h-s' %}
|
2020-09-30 19:11:53 +00:00
|
|
|
</a>
|
|
|
|
{% endif %}
|
|
|
|
</td>
|
|
|
|
<td>
|
|
|
|
{{ item.data|dict_key:'Title' }}
|
|
|
|
</td>
|
|
|
|
<td>
|
|
|
|
{{ item.data|dict_key:'Author' }}
|
|
|
|
</td>
|
|
|
|
<td>
|
2020-11-12 21:52:57 +00:00
|
|
|
{% if item.book %}
|
|
|
|
<span class="icon icon-check">
|
2021-02-27 22:22:39 +00:00
|
|
|
<span class="is-sr-only">{% trans "Imported" %}</span>
|
2020-11-12 21:52:57 +00:00
|
|
|
</span>
|
2020-09-30 19:11:53 +00:00
|
|
|
{% endif %}
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
{% endfor %}
|
|
|
|
</table>
|
|
|
|
</div>
|
2020-04-21 14:09:21 +00:00
|
|
|
</div>
|
2021-03-05 14:41:21 +00:00
|
|
|
{% endspaceless %}{% endblock %}
|
2021-03-19 17:51:45 +00:00
|
|
|
|
|
|
|
{% block scripts %}
|
|
|
|
<script src="/static/js/check_all.js"></script>
|
|
|
|
{% endblock %}
|