65 lines
3.6 KiB
HTML
65 lines
3.6 KiB
HTML
{% extends "base.html" %}
|
||
{% block title %}Запуск {{ run.id }} · MIEM Employees{% endblock %}
|
||
{% block content %}
|
||
<section class="panel">
|
||
<div class="progress-panel__header">
|
||
<div>
|
||
<h2 class="panel__title">Запуск {{ run.id }}</h2>
|
||
<p class="progress-panel__empty">{{ run.started_display }} · {{ run.status_display }}</p>
|
||
</div>
|
||
<a class="admin__link" href="/admin/runs">Все запуски</a>
|
||
</div>
|
||
<div class="stats-strip">
|
||
<div class="stats-strip__item"><span class="stats-strip__label">Найдено</span><span class="stats-strip__value">{{ run.found_count }}</span></div>
|
||
<div class="stats-strip__item"><span class="stats-strip__label">Обработано</span><span class="stats-strip__value">{{ run.parsed_count }}</span></div>
|
||
<div class="stats-strip__item"><span class="stats-strip__label">Новые</span><span class="stats-strip__value">{{ run.new_count }}</span></div>
|
||
<div class="stats-strip__item"><span class="stats-strip__label">Потеряшки</span><span class="stats-strip__value">{{ run.changes.missing_from_source | length }}</span></div>
|
||
<div class="stats-strip__item"><span class="stats-strip__label">Уволены</span><span class="stats-strip__value">{{ run.dismissed_count }}</span></div>
|
||
<div class="stats-strip__item"><span class="stats-strip__label">Ошибки</span><span class="stats-strip__value">{{ run.error_count }}</span></div>
|
||
</div>
|
||
{% if not run.changes_detail_available %}
|
||
<p class="progress-panel__empty">Детализация сотрудников для этого запуска недоступна. Она сохраняется только для новых запусков после обновления.</p>
|
||
{% endif %}
|
||
</section>
|
||
|
||
{% for group, title in [("new", "Новые сотрудники"), ("missing_from_source", "Потеряшки"), ("dismissed", "Уволенные")] %}
|
||
<section class="panel">
|
||
<h2 class="panel__title">{{ title }}</h2>
|
||
{% set items = run.changes[group] %}
|
||
{% if items %}
|
||
<table class="table">
|
||
<thead><tr><th class="table__head">ФИО</th><th class="table__head">Профиль</th><th class="table__head">Проверка</th><th class="table__head">Комментарий</th></tr></thead>
|
||
<tbody>
|
||
{% for item in items %}
|
||
<tr>
|
||
<td class="table__cell">{% if item.employee_id %}<a class="admin__link" href="/admin/employees/{{ item.employee_id }}">{{ item.full_name or item.profile_key }}</a>{% else %}{{ item.full_name or item.profile_key }}{% endif %}</td>
|
||
<td class="table__cell"><a class="admin__link" href="{{ item.profile_url }}">{{ item.profile_url }}</a></td>
|
||
<td class="table__cell">{{ item.profile_available_display }}</td>
|
||
<td class="table__cell">{{ item.message or "" }}</td>
|
||
</tr>
|
||
{% endfor %}
|
||
</tbody>
|
||
</table>
|
||
{% else %}
|
||
<p class="progress-panel__empty">Нет записей.</p>
|
||
{% endif %}
|
||
</section>
|
||
{% endfor %}
|
||
|
||
<section class="panel">
|
||
<h2 class="panel__title">Ошибки запуска</h2>
|
||
{% if run.errors %}
|
||
<table class="table">
|
||
<thead><tr><th class="table__head">Профиль</th><th class="table__head">Ошибка</th><th class="table__head">Время</th></tr></thead>
|
||
<tbody>
|
||
{% for error in run.errors %}
|
||
<tr><td class="table__cell">{{ error.profile_url or "" }}</td><td class="table__cell">{{ error.error_type }}: {{ error.message }}</td><td class="table__cell">{{ error.created_display }}</td></tr>
|
||
{% endfor %}
|
||
</tbody>
|
||
</table>
|
||
{% else %}
|
||
<p class="progress-panel__empty">Ошибок нет.</p>
|
||
{% endif %}
|
||
</section>
|
||
{% endblock %}
|