добавил обработчик задач
All checks were successful
Deploy timelaps / deploy (push) Successful in 5s
All checks were successful
Deploy timelaps / deploy (push) Successful in 5s
This commit is contained in:
@@ -3,13 +3,51 @@
|
||||
{% block content %}
|
||||
<div class="d-flex justify-content-between align-items-center mb-4">
|
||||
<h2>Твои камеры</h2>
|
||||
{% if storage_available %}
|
||||
<span class="badge bg-success">Storage доступен</span>
|
||||
{% else %}
|
||||
<span class="badge bg-danger">Storage недоступен</span>
|
||||
{% endif %}
|
||||
<div class="d-flex gap-2 align-items-center">
|
||||
{% if storage_available %}
|
||||
<span class="badge bg-success">Storage доступен</span>
|
||||
{% else %}
|
||||
<span class="badge bg-danger">Storage недоступен</span>
|
||||
{% endif %}
|
||||
<form method="post" action="{% url 'camlaps:discover_cameras' %}">
|
||||
{% csrf_token %}
|
||||
<button type="submit" class="btn btn-sm btn-outline-primary">Найти камеры</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% if added is not None %}
|
||||
<div class="alert alert-success py-2">
|
||||
Добавление завершено: добавлено новых камер — {{ added }}.
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if discovered_candidates is not None %}
|
||||
<div class="card border-info mb-3">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">Найдено новых камер: {{ discovered_count }}</h5>
|
||||
{% if discovered_count %}
|
||||
<form method="post" action="{% url 'camlaps:apply_discovered_cameras' %}">
|
||||
{% csrf_token %}
|
||||
<div class="row g-2 mb-3">
|
||||
{% for c in discovered_candidates %}
|
||||
<div class="col-12 col-md-6">
|
||||
<label class="form-check-label d-flex align-items-center gap-2">
|
||||
<input class="form-check-input" type="checkbox" name="selected_storage_paths" value="{{ c.storage_path }}" checked>
|
||||
<span>{{ c.name }} <span class="text-muted">({{ c.storage_path }})</span></span>
|
||||
</label>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary btn-sm">Добавить выбранные камеры</button>
|
||||
</form>
|
||||
{% else %}
|
||||
<div class="text-muted">Новых папок камер не найдено.</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="row row-cols-1 row-cols-md-3 g-4">
|
||||
{% for camera in cameras %}
|
||||
<div class="col">
|
||||
|
||||
@@ -29,6 +29,15 @@
|
||||
<div class="text-muted">FPS</div>
|
||||
<div class="fw-semibold">{{ job.fps }}</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="text-muted">Кадры</div>
|
||||
<div class="fw-semibold">
|
||||
{{ job.frames_processed }}
|
||||
{% if job.frames_total %}
|
||||
/ {{ job.frames_total }}
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="text-muted">Ночь</div>
|
||||
<div class="fw-semibold">
|
||||
|
||||
@@ -3,8 +3,22 @@
|
||||
{% block content %}
|
||||
<div class="d-flex justify-content-between align-items-center mb-4">
|
||||
<h2>Очередь задач</h2>
|
||||
<form method="post" action="{% url 'camlaps:start_queue' %}">
|
||||
{% csrf_token %}
|
||||
<button type="submit" class="btn btn-primary btn-sm">Старт очереди</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
{% if queue_started == 'none' %}
|
||||
<div class="alert alert-warning py-2">Очередь пуста: задач со статусом «Запланировано» нет.</div>
|
||||
{% elif queue_started == 'worker' %}
|
||||
<div class="alert alert-success py-2">Воркер очереди запущен. Обнови страницу через несколько секунд.</div>
|
||||
{% elif queue_started == 'error' %}
|
||||
<div class="alert alert-danger py-2">Не удалось запустить воркер. Проверь логи Django.</div>
|
||||
{% elif queue_started %}
|
||||
<div class="alert alert-success py-2">Запущена задача #{{ queue_started }}.</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="table-responsive">
|
||||
<table class="table table-striped align-middle">
|
||||
<thead>
|
||||
|
||||
Reference in New Issue
Block a user