63 lines
3.8 KiB
HTML
63 lines
3.8 KiB
HTML
{% extends "base.html" %}
|
||
{% block title %}Обзор · MIEM Employees{% endblock %}
|
||
{% block content %}
|
||
<section class="admin__grid">
|
||
<a class="metric metric--link" href="/admin/directory"><span class="metric__label">Всего в базе</span><span class="metric__value">{{ counts.total }}</span></a>
|
||
<a class="metric metric--link" href="/admin/directory?status=active"><span class="metric__label">Работают</span><span class="metric__value">{{ counts.active }}</span></a>
|
||
<a class="metric metric--link" href="{% if latest_run %}/admin/runs/{{ latest_run.id }}#new-employees{% else %}/admin/runs{% endif %}"><span class="metric__label">Новые за запуск</span><span class="metric__value">{{ counts.new_in_last_run }}</span></a>
|
||
<a class="metric metric--link" href="/admin/directory?status=dismissed"><span class="metric__label">Уволены</span><span class="metric__value">{{ counts.dismissed }}</span></a>
|
||
</section>
|
||
<section class="stats-strip">
|
||
<div class="stats-strip__item">
|
||
<span class="stats-strip__label">Последний добавленный</span>
|
||
{% if counts.latest_added %}
|
||
<a class="stats-strip__value" href="/admin/employees/{{ counts.latest_added.id }}">{{ counts.latest_added.full_name or counts.latest_added.canonical_url }}</a>
|
||
{% else %}
|
||
<span class="stats-strip__value">Сотрудников пока нет</span>
|
||
{% endif %}
|
||
</div>
|
||
<a class="stats-strip__item stats-strip__item--link" href="/admin/runs">
|
||
<span class="stats-strip__label">Запуски</span>
|
||
<span class="stats-strip__value">{{ counts.runs }}</span>
|
||
</a>
|
||
<div class="stats-strip__item">
|
||
<span class="stats-strip__label">Ошибки</span>
|
||
<span class="stats-strip__value">{{ counts.errors }}</span>
|
||
</div>
|
||
</section>
|
||
<section class="panel progress-panel" data-progress-panel>
|
||
<div class="progress-panel__header">
|
||
<h2 class="panel__title">Прогресс парсинга</h2>
|
||
<form method="post" action="/admin/crawl-now">
|
||
<button class="button" type="submit">Запустить парсинг</button>
|
||
</form>
|
||
</div>
|
||
{% set run = counts.current_running_run or latest_run %}
|
||
<div class="progress-panel__body" data-progress-body>
|
||
<div class="progress-panel__meta">
|
||
<span data-progress-status>{{ run.status_display if run else "Ожидание" }}</span>
|
||
<span>обработано: <span data-progress-processed>{{ run.processed_count if run else 0 }}</span> / <span data-progress-found>{{ run.found_count if run else 0 }}</span></span>
|
||
<span>ошибок: <span data-progress-errors>{{ run.error_count if run else 0 }}</span></span>
|
||
</div>
|
||
<div class="progress-bar" aria-label="Parsing progress">
|
||
<div class="progress-bar__fill" data-progress-fill style="width: {{ run.progress_percent if run else 0 }}%"></div>
|
||
</div>
|
||
<div class="progress-panel__percent"><span data-progress-percent>{{ run.progress_percent if run else 0 }}</span>%</div>
|
||
</div>
|
||
</section>
|
||
<section class="panel">
|
||
<h2 class="panel__title">Последние запуски</h2>
|
||
<table class="table">
|
||
<thead><tr><th class="table__head">ID</th><th class="table__head">Статус</th><th class="table__head">Обработано</th><th class="table__head">Ошибки</th><th class="table__head">Старт</th></tr></thead>
|
||
<tbody>
|
||
{% for run in runs %}
|
||
<tr class="table__row" data-row-href="/admin/runs/{{ run.id }}"><td class="table__cell"><a class="admin__link" href="/admin/runs/{{ run.id }}">{{ run.id }}</a></td><td class="table__cell">{{ run.status_display }}</td><td class="table__cell">{{ run.parsed_count }}</td><td class="table__cell">{{ run.error_count }}</td><td class="table__cell">{{ run.started_display }}</td></tr>
|
||
{% endfor %}
|
||
</tbody>
|
||
</table>
|
||
</section>
|
||
{% endblock %}
|
||
{% block scripts %}
|
||
<script src="/static/admin.js"></script>
|
||
{% endblock %}
|